У нас есть REST API для извлечения двоичных файлов с сервера.
Запросы выглядят как
GET /documents/e62dd3f6-18b0-4661-92c6-51c7258f9550 HTTP/1.1
Accept: application/octet-stream
Для каждого ответа, указывающего на ошибку, мы хотели бы указать причинув формате JSON.Проблема заключается в том, что ответ не относится к тому типу контента, который запрашивал клиент.
Но какой ответ должен дать сервер?
В настоящее время он отвечает
HTTP / 1.1 406 Not Acceptable
Content-Type: application/json
{
reason: "blabla"
...
}
, что мне кажется неправильным, поскольку основная проблема заключается в том, чторесурс не существует и клиент не запрашивает неверный тип контента.
Но вопрос в том, как правильно поступить в таких ситуациях?
- Это нормально?, чтобы ответить 404 + application / json, хотя application / octet-stream был запрошен
- Можно ли ответить 406 + application / json, так как клиент не указал application / json в качестве приемлемого типа
- Следует ли расширить спецификацию, чтобы клиент использовал q-параметр - например,
application/octet-stream, application/json;q=0.1
- Другие параметры?