2012-05-21 2 views
0

Я строю отдых api и задавался вопросом о возвращении ошибок. В настоящее время мой план состоял в том, чтобы использовать коды статуса http, а также всегда возвращать результат. Результат будет выглядеть следующим образом, если произошла ошибка или нет.Rest Api Return

{ 
"Data":[the data]," 
Errors":[the errors] 
} 

В принципе, если произошла ошибка код Http состояния в 4xx или 5xx будет возвращен и сбор ошибки в возвращенном JSON будет иметь более подробную информацию об ошибке, с разделом данных является нулевым. Если вызов преуспел, код состояния Http 200 будет возвращен с элементом данных, содержащим запрошенные данные, и элемент ошибок будет пустым.

Будет ли это хорошим способом возврата данных с информацией об ошибках?

ответ

0

В моем дизайне я не включил в объект ответа JSON свойства «данные» и «ошибки».

Если API успешно, я верну 'данные' только. И код статуса http - 2XXX.

Если API не удался, я верну объект 'error'. Статус http соответствует спецификации, определенной в разделе 10 RFC 2616.

Пример моего объекта ошибки приведен ниже.

HTTP/1.1 404 Not Found 
X-Powered-By: Express 
Content-Type: application/json; charset=utf-8 
Content-Length: 100 
Date: Thu, 08 Nov 2012 07:07:05 GMT 
Connection: keep-alive 

{ 
    "type": "error", 
    "status": 404, 
    "message": "Not Found", 
    "help_url": "/api/help.html" 
}