【发布时间】:2013-12-31 02:01:11
【问题描述】:
对于一个或多个不存在的多个对象的 GET 请求的正确响应是什么?例如:
http://domain.net/event-list/?ids=1&ids=5&ids=3
其中 id 为 5 的对象不存在。我应该返回一个仅包含对象 1 和 3 的列表,还是应该返回某种错误?正确的答案是什么?
我还想知道如果请求是 POST,行为是否应该有所不同。例如:
$.post('domain.net/events/bulk-edit/?ids=1&ids=5&ids=3', { public: true });
我应该只对存在的对象执行操作还是根本不执行操作并返回错误?
我知道如果非空查询字符串可以用于 POST 请求,会有一些争论。我认为它们仅适用于您请求对象子集对它们执行某些操作的特殊情况。
【问题讨论】:
-
知道响应是哪种类型会很有趣。是 HTML、JSON、XML 还是完全不同的东西?
-
三个都是。我有基于查询字符串参数(后端表单)过滤对象的统一逻辑。这个逻辑可以说参数无效,在这种情况下我应该返回某种错误,或者它可以是有效的,在这种情况下我返回请求的对象。所以问题是如果
ids=1&ids=5&ids=3是无效的,如果其中一个对象不存在或者它是否应该被认为是有效的,在这种情况下我应该只返回两个现有的对象而不通知用户或远程系统他请求了一个无效的身份证。