Правильный код ответа для API, который получает статус задания (проваленный) - PullRequest
1 голос
/ 01 ноября 2019

Я пишу простую конечную точку GET, которая получает статус асинхронного задания. Какой правильный код ответа будет возвращаться в случае сбоя асинхронного задания?

Я, конечно, думаю, что это не должно быть 500, поскольку это означает, что мой запрос сам не прошел, что не так. Сбой задания, о котором запрашивает конечная точка, но не сам ответ.

Какая конечная точка будет наиболее подходящей для использования?

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

Обычно я отвечал бы 200, потому что сам http-ответ был успешным (ошибки 5XX - это ошибки ниже). Однако в возвращенных данных я бы сказал, что при обработке запроса возникла какая-то проблема.

Если бы сервер возвращал json, я бы ответил что-то вроде

{
  "error": "There was a problem of some kind",
  "data": null
}
* 1005. * В клиенте, получающем данные, я бы затем проверил, было ли поле ошибки пустым, прежде чем считать полученные данные действительными.
0 голосов
/ 01 ноября 2019

Обычно, если у меня есть проблема с другим процессом в моем запросе, я отвечаю 500, потому что у меня действительно была проблема, и мне нужно немедленно ее исправить.

Что касается других ошибок, неверных данных, авторизации и т. Д., Вам необходимо проверить коды 4XX.

Вы можете проверить коды HTTP на https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

...