告诉调用者API中的错误,特别是“未找到”错误的惯用方法是什么?
假设,我有一个网址/api/vi1/check/123
。
如果
id = 123没有这样的记录吗? 404错误(Http状态404)?
状态:404(http);数据:{}
或者我应该返回OK状态(Http状态200)和 json的内部状态
状态:200(http);数据:{状态:404,消息:“未找到”}?
并且(与 1 相关)如果没有这样的网址,我应该返回什么? 另外 Http 404状态?
是的,我已经看过最佳实践视频并阅读有关REST API的文章,但这些问题没有得到明确解答。
答案 0 :(得分:2)
REST是关于使用HTTP的语义。它也适用于错误代码。您应该使用404状态代码,并最终在正文中使用更具描述性的错误消息。
答案 1 :(得分:1)
是的,你应该返回一个简单的404,不多也不少。 (也许是一条消息......)这表明你所寻找的资源并不存在于REST中的良好实践。
答案 2 :(得分:-1)
最好不要在这里提供任何正文(如内部状态代码或消息)。如果在这种情况下确实需要消息(错误时为404或500),则可以使用其他HTTP头字段(例如,X-Message:数据库不可用)来执行此操作。但是这里有一个空的响应体404就足够了。