Cha*_*des 18 api rest error-handling query-string
我正在实现一个REST API框架,我想知道当客户端提交无效的查询字符串参数时,推荐行为是什么.
我将用一个具体的例子来说明我的意思:说,我在/ api/contacts/endpoint上有一个API处理程序,并且处理程序提供了一个名为querystring的过滤器id,它使客户能够使用提供的ID选择某些联系人.
因此,GET或DELETE请求可能是/api/contacts/?id=2&id=4&id=lalalala.
显然,没有联系方式id=lalalala.在这种情况下,服务器应该是什么样的?
忽略无效的联系人id=lalalala,仅过滤有效ID,2和4上的联系人.
回复指示此错误的错误代码.如果是,应提供哪个错误代码?
提前致谢.
编辑:澄清; 我开发的框架的主要焦点是具有可预测的行为,因此具有响应代码.出于这个原因,我希望客户端使用基于此框架构建的API,以期获得最少的意外.所以,问题基本上是:在这种情况下API应该返回错误(如果是,那么)?或者忽略无效的过滤条目,只过滤正确的查询字符串参数?
Rav*_*att 15
由于这是一个REST调用,我们讨论的是资源.每当我们有一个错误的过滤器,我们应该返回一个正确的错误代码.
在这种情况下,我会400 - bad request找到资源并正确映射(/api/contacts),但该query string部分存在问题.因此,400而不是一个404.
404如果有人请求/api/contacts-all或某些不存在的资源,将返回a .
编辑基于以下评论
同意你的评论.理想情况下,a 400是请求的问题.顺便说一句,你可以用一个422 Unprocessable Entity.请查看下面的stackoverflow链接,它会谈到同样的事情.
我猜想,在世界各地的开发人员会比较舒服看到400不是422这样的逻辑错误是由于一个事实,即大公司使用400,而不是422.
参考: Http状态代码, 400表示逻辑错误与格式错误的请求
| 归档时间: |
|
| 查看次数: |
11449 次 |
| 最近记录: |