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

«Какой HTTP-метод REST используется для чтения (получения) сущности?» — вопрос из категории Сети, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для чтения сущности в 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 не должен иметь тела запроса.