编写RESTful API以使用自定义HTTP响应代码(例如:
)时,这是一种不好的做法
我看到有一个standard HTTP response codes列表。但是,通过查看Twitter's API,Twitter似乎会尝试在可用时返回标准HTTP响应代码,但是当它们无法将错误与标准HTTP响应对齐时,它们会返回自己的错误代码(如果我错了,请更正我)。
创建RESTful API时,响应代码(尤其是错误)的最佳做法是什么?对Twitter选择使用的做法有何评论?
答案 0 :(得分:5)
是的,是的,这是不好的做法......主要是。
REST的一个原则是你使用基础协议,因为HTTP已经定义了一组很好的响应代码。
然而,并非所有情况都能得到完美的照顾。让Twitters'逮捕你的冷静',当请求有效时使用响应代码,由于请求太多而无法处理。
我没有看到另一个与之匹配的响应代码。另外两个选项是谎言,并告诉用户其他一些响应请求失败,或者给一个通用400'你做了一些不好的事情'(然后在正文中给出更详细的解释)。
我赞成使用通用X00代码,并使用标题或正文添加更多有关实际出错的详细信息。这至少符合标准并且不那么脆弱。
但请注意,获取现有错误代码并重新调整它是非常糟糕的。 404应始终仅用于“未找到”错误。不要开始使用它,因为用户无法在一天的这个时间发出请求。
答案 1 :(得分:5)
使用自己的代码时遇到的问题是: