我经常看到协议版本附加了"bis"(例如v.34bis或httpbis).
"bis"是什么意思或代表什么?
我认识的一位电信工程师认为它可能源于法国.
我正在实现一个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应该返回错误(如果是,那么)?或者忽略无效的过滤条目,只过滤正确的查询字符串参数?
我们正在编写REST服务,并且当有人请求具有不存在的父ID的资源时,如何做有争议.
示例:您要求提供与公司关联的人员列表,因此您GET使用ID 1,但该公司ID不存在.
我认为REST的定义说我们会简单地返回一个空列表(导致a HTTP 204 (No Content)),因为根据规范,HTTP Bad Request仅用于格式错误的语法:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
由于语法格式错误,服务器无法理解请求.客户端不应该在没有修改的情况下重复请求.
我认为更清楚的是没有要解释的错误,您请求的资源不存在.
关于最佳实践的想法?
这里有一个SO讨论:HTTP 400(错误的请求)用于逻辑错误,而不是格式错误的请求语法,虽然它有点抽象,如果我发布这个,或者只是使用那个问题,我就会被撕裂.
我有REST方法来更新用户个人资料。如果某些参数无效,系统应返回哪个状态码?或者,例如,如果旧密码和DB中的密码不相等,则更改密码。400错误的请求?
rest ×3
api ×1
definition ×1
http ×1
http-error ×1
jax-rs ×1
jersey ×1
protocols ×1
query-string ×1