我正在构建对名词进行操作的API Foo。当呼叫者Foo使用POST请求创建的实例时,要求他们为第二个名词提供ID Bar。如果他们提供的ID是正确的类型,但是没有Bar提供该ID,那么404是正确的响应吗?
我建议使用HTTP 400(错误请求)。
参见http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1。可以将400解释为客户端未正确形成请求的一般指示。
还可以提出返回500响应的理由。如果客户端认为Bar引用有效,则服务器无法处理此请求可以视为异常。例如,如果引用有效,则可能发生这种情况,但是另一个客户端将其删除。在这种情况下,第一个客户端没有做任何错。
我认为这取决于ID是否在URL中。URL是资源的地址,如果ID在URL中并且不存在具有该ID的项,或者您根本不提供该URL,则该URL无效,因此找不到资源,因此这是一个404。
但是,如果ID 不在 URL中,而是在POST请求中的数据中,并且URL是资源的有效地址,则应返回400 Bad Request。
| 归档时间: |
|
| 查看次数: |
2808 次 |
| 最近记录: |