Задайте @RequestMapping("/api/books") на контроллере. Методы коллекции: GET и POST; методы конкретной книги: GET, PUT и DELETE по /{id}.
Создание REST‑интерфейса для управления книгами: настройка маршрутов
Задайте @RequestMapping("/api/books") на контроллере. Методы коллекции: GET и POST; методы конкретной книги: GET, PUT и DELETE по /{id}.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
В проекте присутствует Spring‑контроллер BookController, отвечающий за операции с книгами. Требуется:
-
Определить базовый путь
/api/booksдля всех методов контроллера; -
Сконфигурировать отдельные эндпоинты в соответствии с REST‑конвенциями:
- Получить список всех книг – HTTP GET;
- Получить книгу по её идентификатору – HTTP GET с параметром ID;
- Добавить новую книгу – HTTP POST;
- Обновить существующую запись книги – HTTP PUT;
- Удалить книгу – HTTP DELETE. Необходимо соблюдать принятые в REST наименования путей и методы HTTP.
Ответ
Задайте @RequestMapping("/api/books") на контроллере. Методы коллекции: GET и POST; методы конкретной книги: GET, PUT и DELETE по /{id}.
Разметка методов:
@GetMapping // GET /api/books
@GetMapping("/{id}") // GET /api/books/{id}
@PostMapping // POST /api/books
@PutMapping("/{id}") // PUT /api/books/{id}
@DeleteMapping("/{id}") // DELETE /api/books/{id}
Это отдельные аннотации для пяти разных методов, не набор над одним методом. ID связывается через @PathVariable, данные создания/изменения — через @RequestBody и валидацию. POST обычно возвращает 201 с Location, отсутствующий ресурс — 404, успешное удаление без тела — 204. PUT подразумевает замену; для частичного изменения удобнее PATCH.