如果资源未处于正确状态,我应该使用什么HTTP状态代码?

时间:2015-11-24 11:25:23

标签: http

假设我有一个资源BlogPost。调用/blog/publish/<BlogPostId>时,应发布博客文章。但如果它缺少标题,则不应该。

如果请求失败,我应该使用什么HTTP状态代码,因为资源未处于正确的状态以便对其执行请求的操作?

(我知道在我的路径中使用动词不是RESTful,但我不是要编写REST API。)

1 个答案:

答案 0 :(得分:2)

尝试发布不完整的资源听起来像是客户端错误(即4xx系列),尤其是因为对端点的重复请求仍会导致相同的错误。 (即客户需要在重新尝试之前采取措施纠正错误)

关于API响应的状态代码没有硬性规定。只要你把它记录得很好并拿起那些逻辑上合理的那些,它应该是好的。

话虽如此,412 Precondition Failed怎么样? Checking the RFC

  

412(Precondition Failed)状态代码表示在服务器上测试时,请求头字段中给出的一个或多个条件评估为false。 此响应代码允许客户端在当前资源状态(其当前表示和元数据)上放置先决条件,从而防止在目标资源处于意外状态时应用请求方法。 < / p>

由于这是针对您自己的API,因此您不需要严格遵循将该状态代码链接到标头定义的前提条件的RFC。粗体部分与您的用例相关。