Ответ
Для чтения сущности в REST API используется HTTP-метод GET.
Ключевые характеристики:
- Идемпотентный: Многократные запросы возвращают одинаковый результат.
- Безопасный: Не изменяет состояние ресурса на сервере.
- Кэшируемый: Ответы могут и должны кэшироваться, когда это возможно.
Типичная реализация:
@GetMapping("/users/{id}")
public ResponseEntity<User> getUser(@PathVariable Long id) {
User user = userService.findById(id);
if (user == null) {
return ResponseEntity.notFound().build(); // 404
}
return ResponseEntity.ok(user); // 200 OK
}
Параметры и статусы:
- Параметры передаются через path variables (
/users/{id}) или query params (/users?name=John). - Успех: Возвращает статус
200 (OK)с представлением ресурса в теле ответа. - Не найдено:
404 (Not Found). - Метод
GETне должен иметь тела запроса.
Ответ 18+ 🔞
А, ну вот, классика, блядь! Читать сущность. Это ж самый простой и мирный метод, как будто за хлебушком в магазин сходить. GET, сука.
Слушай, главная его фишка — он, как мой дед после третьей рюмки, предсказуемый и безопасный. Называется это идемпотентность и безопасность, ёпта. Ты его хоть сто раз дерни — он тебе одно и то же вернёт, и на сервере нихуя не пошатнётся. Ничего не создаст, не удалит, не изменит. Чисто посмотреть пришёл. И ответы его, блядь, можно в кэш пихать — чтобы каждый раз за одним и тем же не бегать, как дурак.
Вот смотри, как это в коде выглядит, тут всё просто, как три копейки:
@GetMapping("/users/{id}")
public ResponseEntity<User> getUser(@PathVariable Long id) {
User user = userService.findById(id);
if (user == null) {
return ResponseEntity.notFound().build(); // 404
}
return ResponseEntity.ok(user); // 200 OK
}
Видишь? Пришёл по адресу /users/123, сука, ищешь юзера. Нашёлся — отдаём его с поклоном и статусом 200 (OK). Не нашёлся — ну, извини, браток, 404 (Not Found), иди на хуй, такого тут нет.
Параметры, блядь, можно в путь впихнуть, как тут {id}, а можно через вопросики, типа /users?name=Вася. Это уже как удобнее. И запомни раз и навсегда, ёбта: у GET-запроса тела быть не должно, вообше! Ты что, собрался ему письмо с объявлением в карман сунуть? Всё, что надо, — в адресе. Всё!
Короче, GET — это базовый, фундаментальный метод. Не наебёшь, не проебёшь. Как слон в посудной лавке, только аккуратный.