Как именно работает аннотация @ ResponseStatus Spring для приложения RESTful?
Я изучаю сертификацию Spring Core, и у меня есть некоторые сомнения в том, как Spring handle остальное запрос.
Я знаю, что с REST ресурсы выставляются как имя и что действие этих ресурсов-это методы HTTP:GET, поставить, в должности, удалить
и я знаю, что запрос обрабатывается с использованием @RequestMapping аннотации на метод, который ручка ресурсе.
из того, что я понимаю, как стандартные веб-приложения, так и приложения RESTful используют некоторые коды для связи со своими клиентами( приложение RESTful имеет расширенный набор кодов), которые, я думаю, представляют статус запроса (например,200 является ли запрос успешным возвращением контента и т. д.).
теперь в документации показано использование @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 запрос к ресурсу по имени /приказ (используя REST ресурс рассматривается как URL, правильно?).
но что именно делает аннотация:
@ResponseStatus(HttpStatus.CREATED) // 201
Я знаю, что 201 код состояния означает, что nnew ресурс был создан на POST или PUT
и глядя на официальную документацию I могу прочитать:
помечает метод или класс исключений кодом состояния и причиной, по которой должен быть возвращен. Код состояния применяется к ответу HTTP когда вызывается метод обработчика или когда указанное исключение заброшенный.
Так что именно означает? Я думаю, что, как это сделано в предыдущем примере, он установил статус 201, который говорит, что ресурс правильно создан запросом POST. Если это правильно, у меня 2 вопросы:
ресурс-это /приказ URI. Так что же создается? файл с именем заказы (Я думаю, что это утверждение ложно) и что?
где ставится статус 201?
1 ответов
201-это HTTP-статус-код. Это означает, что
запрос был выполнен и привел к созданию нового ресурса.
поэтому, если ваш сервер возвращает такой код состояния, то клиент понимает, что был создан некоторый (концептуальный) ресурс. Что это за ресурс-это ваша ответственность, вы-сервер.
код состояния является частью строка состояния ответа HTTP.