REST API - лучший метод для обработки ошибок - PullRequest
2 голосов
/ 24 ноября 2011

При построении ответа API, какой метод лучше (вручную) возвратить код состояния, чтобы указать правильность запроса:

1 - встроить код ответа в ответ JSON

{
  'status_code' => 200,
  'status_message' => 'OK',
  'data' => { ... }
}

2 - Или лучше изменить поле Статус HTTP-заголовков?

Request URL:http://somesite.com
Request Method:GET
Status Code: 200 (EDITING THIS ONE)

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

Любые хорошие статьи и ресурсы для чтения также будут очень благодарны.

Ответы [ 2 ]

2 голосов
/ 24 ноября 2011

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

Если вы используете JSON, это может привести квыглядеть следующим образом, с кодом состояния, установленным на 500 для этого примера:

{"error" : "An error has occurred while trying to read from the database."}

Это тот же метод, который Microsoft CRM использует для сообщения об ошибках , и он оказалсяхороший метод;Приложения RESTFul не смогут проанализировать ответ, если они ожидают JSON (или XML, если вы его используете).

1 голос
/ 24 ноября 2011

Этот вопрос касается той же проблемы (возможно, с несколько иной точки зрения).

Я думаю, что в общем случае, если запрос к ресурсу в вашем приложении приводит к ошибке, этот факт должен быть отражен в заголовках HTTP. Вы можете использовать ответ приложения для предоставления более подробной информации.

Обновление : Здесь представляет собой интересное отображение ошибок приложения в коды состояния (используется Azure).

...