201创建或303在POST请求后查看其他

时间:2013-11-10 21:49:06

标签: api rest

在RESTful界面中,成功执行POST操作后应该是最佳状态代码?

  • 201已创建
  • 303见其他

注意:在HTTP服务器答案中考虑,Location密钥可以存在。

我很困惑。谢谢你的回答。

2 个答案:

答案 0 :(得分:7)

如果POST请求成功创建了新资源,则应使用201 Created标头中提供的资源URI返回Location

当没有立即创建资源时,你可以返回303 See Other以响应POST,就像有一个负责它的异步任务,你想要将客户端重定向到他可以监视的其他URI。任务的当前状态。

答案 1 :(得分:0)

201 Created说" 资源已创建,此处是该资源的网址"。

303 See Other说" 没有出错,您应该查看此网址以获取更多信息"。

主要的区别在于,在GET的情况下,您希望符合条件的客户总是 Location来自303 See Other标头的网址。如果客户端决定需要从服务器获取资源,您只希望201 Created在URL上产生GET

我通常建议不要发送303 See Other除了网页表单之外的任何内容,或者如果您已经开发了多阶段API,那么您必须在第一个之后执行后续请求。