REST 中的 PUT 方法是如何使用的?
是不是 客户端通过 PUT 方法向指定 URL 发送一段 json ,服务端返回 200 表示更新成功?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
是不是 客户端通过 PUT 方法向指定 URL 发送一段 json ,服务端返回 200 表示更新成功?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(7)
两个问题:
PUT 操作是幂等的。所谓幂等是指不管进行多少次操作,结果都一样。比如我用 PUT 修改一篇文章,然后再做同样的操作,每次操作后的结果并没有不同;POST 操作既不是安全的,也不是幂等的,比如常见的 POST 重复加载问题:当我们多次发出同样的 POST 请求后,其结果是创建出了若干的资源;
更新成功与否取决于你的设计,与返回码无关,不信楼主可以在更新成功的情况下,返回非 200 码(比如 201,以及任何你想要的 比如 404);
201 Created
200 OK
一些更具体的信息可以看我的 GitHub 仓库:https://github.com/bolasblack/api-guide#%E8%AF%B7%E6%B1%82%E6%96%B9%E6%B3%95
是+字数补丁
PUT DELETE 其实就是 Post 的马甲~
用JQ或Angular中的API可以实现。都有PUT,GET,DELETE,POST,HEAD这些。
我觉得楼主可以参考阮一峰的这篇文章
200 用于在服务器上不做任何改变的操作,如GET
201 用于资源创建或更新成功,如POST/PUT/DELETE
事实上你确实可以用POST做任何事,但是这个是违反HTTP标准,属于“滥用”。既然用REST,那么最好还是遵守HTTP标准中定义的“语义”。HTTP标准中,POST的定义是
而PUT是
可见,POST是用于新建一个资源,而PUT是用于更新/替换一个资源。
对于PUT方法应用中的各种情况的处理: