Я хотел знать, как я должен ответить в моем REST API.понимание ответа REST и кода состояния HTTP
Действительно Пример:
http://blah.com/api/v1/dosomething/123
выше действительный запрос и в настоящее время у меня есть HTTP Status 200 с ответом JSON
{
"dosomething": {
"status": "OK",
"results": "123"
}
}
Теперь мой вопрос, если передаваемый параметр недействителен (я ожидаю строку целых чисел), возвращаю ли ответ HTTP 200 из 200 и передаю статус ошибки в ответ JSON или должен передать что-то вроде ответа HTTP 400 (неверный запрос) и перечислить ошибку/вопрос с запросом в ответ JSON?
Ошибка Пример:
http://blah.com/api/v1/dosomething/123a
JSON ответ:
{
"dosomething": {
"status": "ERROR",
"errors": [
"Value passed: |123a| must be a integer."
]
}
}
Опять мой вопрос я должен передать состояние 200 или 400 HTTP по запросу, где передаваемый параметр не то, что я ожидали? Или это всегда будет ответ 200, когда запрос работает?
Что считается лучшей практикой?
Это распространенное заблуждение. 400 ошибка клиентского приложения, так что может представлять собой целый ряд случаев отказа. Последние Спецификация Httpbis изменила формулировку ошибки 400, чтобы показать, что ее можно применять более широко http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-19#section-7.4.1 –