Я наткнулся на практику, которая, как мне показалось, довольно широко распространена. Я даже нашел веб-страницу, которая дала этому имя, но я забыл это имя и больше не могу найти эту страницу в Google.
Практика такова, что каждый ответ JSON от службы REST должен иметь следующую структуру:
{
"status": "ok",
"data": {... }
}
или в случае ошибки:
{
"status": "error",
"message": "Something went wrong"
}
Мой вопрос :В чем смысл такого свойства «статуса» в JSON? На мой взгляд, именно для этого были созданы коды состояния HTTP.
REST использует средства HTTP для связи между клиентом и сервером, например, глагол «DELETE» должен использоваться для удаления. Точно так же следует использовать 404, если ресурс не найден и т. д. Таким образом, в соответствии с этим мышлением любые случаи ошибок должны быть правильно закодированы в статусе HTTP.
Существуют ли конкретные причины для возврата кода состояния HTTP 200 в случае ошибки и вместо этого ошибки в JSON? Это просто делает условные ветки javascript более сложными при обработке ответа.
Я обнаружил несколько случаев, когда статус может быть «перенаправлен», чтобы указать приложению перенаправить на определенный URL-адрес. Но если бы использовался надлежащий код состояния HTTP, браузер выполнил бы перенаправление «бесплатно», сохраняя историю просмотров должным образом.
Я представляю в основном два возможных ответа от вас: