Есть ли лучший подход к согласованию содержимого на основе Accept Header в Spring API? - PullRequest
1 голос
/ 11 марта 2020

Я использую Content Negotiation, чтобы определить несколько ответов для одной и той же функции REST API, изменив заголовок accept.

  1. Заголовок Accept: application / json, должен дать ответ как json (используется другой службой)
  2. Заголовок подтверждения: application / octet-stream , должен загрузить тот же ответ json, что и файл с пользовательским расширением файла, для использоваться пользовательским интерфейсом

В настоящее время я получаю 406, когда передаю application / octet-stream в заголовке Accept.

Это правильный подход? или я должен разделить функцию на 2, или лучше использовать параметры запроса

1 Ответ

0 голосов
/ 11 марта 2020

В настоящее время я получаю 406, когда передаю application / octet-stream в заголовке Accept.

Возможно, вы используете какую-то аннотацию на вашей конечной точке ...

Что-то вроде: @RequestMapping или (@GetMapping или @PostMapping и т. Д. c) ... хорошо, эта аннотация содержит атрибут produces ... этот атрибут должен иметь типы, ожидаемые конечной точкой в вашем случае: [application/json, application/octet-stream] ...

Примечание: клиент должен указать вашей конечной точке, какой формат он хочет ... чтобы сделать это, клиент должен указать формат, используя Accept http header ...

Это правильный подход? или я должен разделить функцию на 2 или лучше использовать параметры запроса?

Для меня это правильный подход, потому что ваш API проще и вы используете механизмы, предложенные стандарт ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...