Какой HTTP-метод REST используется для чтения (получения) сущности?

Ответ

Для чтения сущности в 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 — это базовый, фундаментальный метод. Не наебёшь, не проебёшь. Как слон в посудной лавке, только аккуратный.