Как именно работает аннотация @ResponseStatus Spring для приложения RESTful?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как именно работает аннотация @ResponseStatus Spring для приложения RESTful?

Сообщение Anonymous »

Я готовлюсь к сертификации Spring Core, и у меня есть некоторые сомнения относительно того, как Spring обрабатывает запросы REST.
Я знаю, что с помощью REST ресурсы открываются в качестве имени и что действия над этими ресурсами являются методами HTTP, такими как GET, PUT, POST и DELETE.
И я знаю, что запросы обрабатываются с помощью аннотаций @RequestMapping над методом, который обрабатывает операцию с ресурсом.
Насколько я понял, как стандартные веб-приложения, так и приложения RESTful используют некоторые коды для связи со своими клиентами (приложение RESTful имеет расширенный набор кодов), которые, я думаю, отражают статус запроса (например, 200
— запрос является успешным GET, возвращающим контент и т. д.).
Теперь в документации показано использование аннотации @ResponseStatus, как в этом примере. :

Код: Выделить всё

@RequestMapping(value="/orders", method=RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED) // 201
public void createOrder(HttpServletRequest request, HttpServletResponse response) {
Order order = createOrder(request);
// determine full URI for newly created Order based on request
response.addHeader("Location",
getLocationForChildResource(request, order.getId()));
}
Итак, глядя на предыдущий метод, я знаю, что он обрабатывает запросы HttpRequest POST к ресурсу с именем /orders (используя REST ресурс рассматривается как URL-адрес, это правильно?).
Но что именно делает аннотация ниже:

Код: Выделить всё

@ResponseStatus(HttpStatus.CREATED) // 201
Я знаю, что код состояния 201 означает, что новый ресурс был создан посредством POST.
И глядя на официальную документацию, я могу прочитать:

Отмечает метод или класс исключения кодом состояния и причиной, которая
должна быть вернулся. Код состояния применяется к HTTP-ответу
при вызове метода обработчика или при каждом возникновении
исключения.

Так что же именно это означает? Я думаю, что как это сделано в предыдущем примере, он устанавливает статус 201, который говорит о том, что ресурс корректно создан POST-запросом. Если это верно, у меня есть два вопроса:
  • Ресурсом является URI /orders. Так что же создано? файл с именем orders (думаю, что это утверждение неверно) или что?
  • Где статус 201 поставить?


Подробнее здесь: https://stackoverflow.com/questions/283 ... pplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»