Как именно работает аннотация @ 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 вопросы:

  1. ресурс-это /приказ URI. Так что же создается? файл с именем заказы (Я думаю, что это утверждение ложно) и что?

  2. где ставится статус 201?

1 ответов


201-это HTTP-статус-код. Это означает, что

запрос был выполнен и привел к созданию нового ресурса.

поэтому, если ваш сервер возвращает такой код состояния, то клиент понимает, что был создан некоторый (концептуальный) ресурс. Что это за ресурс-это ваша ответственность, вы-сервер.

код состояния является частью строка состояния ответа HTTP.