我目前正在实现一个 RESTful API(没什么大不了的,只是为了一个我正在开发的有趣的博客引擎)并且我对 HTTP 状态兼容性有一些疑问。
要创建一个新的博客文章,我必须做一个 POST 请求,如果一切正常,则创建该文章,然后以与请求对应的格式返回。
我在维基百科的这个页面200 OK
上阅读了关于状态的信息
在 POST 请求中,响应将包含描述或包含操作结果的实体
好的。但是还有201 Created
状态:
请求已完成并导致创建新资源。
所以我的问题是:当 POST 请求成功并创建新的博客文章时,我会发回这两个 http 状态代码还是一次只允许一个?
我没有从RFC获得此信息,以为我没有完全阅读它。
我在想一次只允许一个 HTTP 状态,但是我应该使用哪一个?
编辑(新问题):如果该操作正在编辑现有博客文章怎么办?我有一个 URI 上的 PUT 请求,这次我必须先发回200 OK
然后再发送一个Location:
标头?因为这个位置会和 PUT 请求的 URI 完全一样,除了应该是 GET 请求,可以吗?