Принять заголовок в REST

#java #spring #rest #http #http-headers

#java #весна #rest #http #http-заголовки

Вопрос:

Я всегда использую produces и consumes @RequestMapping в.

Я знаю, что нашел пример, где в запросе post @RequestMapping есть headers = "Accept=application/json" .Итак, мой вопрос, что это на самом деле делает? и нужно ли нам это?

Ответ №1:

Производит и потребляет объявляет, какие данные ваш внутренний метод .. производит и потребляет. Accept — это заголовок на стороне клиента, который сообщает серверу, какой тип содержимого вы хотите вернуть.

Ответ №2:

Свойства produces и consumes были недоступны в первых версиях @RequestMapping (я полагаю, они были добавлены весной 3.1). Явное указание Accept заголовка было подходом, необходимым до того, как Spring добавила для них специальную поддержку.

Ответ №3:

Этот заголовок указывает, какой формат данных ожидает получить клиент. Установка ожидаемого заголовка на некоторое значение в headers (например application/json ) в вашей конечной точке семантически совпадает с установкой его в produces attribute , но produces является более разумным, например, если вы можете создавать несколько типов данных (например, XML и JSON), Spring может автоматически выбрать правильного производителя для генерации ответа, соответствующего полученному значению.

Ответ №4:

В REST определенная информация передается через заголовок, например, идентификатор сеанса, параметры и т. Д. ключевые слова, такие как Accept, content-type, ограничивают содержимое заголовка определенным форматом. Поле Accept request-header может использоваться для указания определенных типов носителей, которые приемлемы для ответа. Заголовки Accept могут использоваться для указания того, что запрос специально ограничен небольшим набором желаемых типов, таких как xml, json, типы мультимедиа и т.д. Аннотацию RequestMapping можно использовать для обработки динамических URI, где одно или несколько значений URI работают как параметр. Надеюсь, это устраняет сомнения, если нет, пожалуйста, свяжитесь…