🍅 Java学习路线:搬砖工逆袭Java架构师
🍅 简介:Java领域优质创作者🏆、优快云哪吒公众号作者✌ 、Java架构师奋斗者💪
🍅 扫描主页左侧二维码,加入群聊,一起学习、一起进步
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
- 有的观点认为,应该用POST来创建一个资源,用PUT来更新一个资源;
- 有的观点认为,应该用PUT来创建一个资源,用POST来更新一个资源;
- 还有的观点认为可以用PUT和POST中任何一个来做创建或者更新一个资源。
这些观点都只看到了风格,争论起来也只是争论哪种风格更好,其实,用PUT还是POST,不是看这是创建还是更新资源的动作,这不是风格的问题,而是语义的问题。
举一个简单的例子,假如有一个博客系统提供一个Web API,模式是这样http://superblogging/blogs/{blog-name},很简单,将{blog-name}替换为我们的blog名字,往这个URI发送一个HTTP PUT或者POST请求,HTTP的body部分就是博文,这是一个很简单的REST API例子。我们应该用PUT方法还是POST方法?取决于这个REST服务的行为是否是idempotent的,假如我们发送两个http://superblogging/blogs/post/Sample请求,服务器端是什么样的行为?如果产生了两个博客帖子,那就说明这个服务不是idempotent的,因为多次使用产生了副作用了嘛;如果后一个请求把第一个请求覆盖掉了,那这个服务就是idempotent的。
前一种情况,应该使用POST方法,后一种情况,应该使用PUT方法。
现在的项目:insert --> post;update --> put
本文探讨了在RESTful API设计中,PUT和POST方法的使用原则。关键在于理解它们的语义差异:PUT是幂等的,适合用于更新资源;POST则用于非幂等操作,如创建资源。通过一个博客系统的例子,解释了如何根据服务行为判断使用PUT还是POST。在实际项目中,insert操作通常对应POST,update对应PUT。
2247

被折叠的 条评论
为什么被折叠?



