一些作者说,在REST体系结构中,应该使用POST方法来创建新资源,并且只有PUT方法用于更新现有资源(或创建一个新资源)。 但问题是,PUT方法是幂等的,因此,如果一个资源有一个名为“updatedTime”必须在服务器端的可靠性来设定一个日期字段,更新操作不再幂(因为“updatedTime的价值“会在每个新操作中改变),所以PUT不能被使用,并且POST仅用于创建一个新对象如何解决这个问题?REST中的POST方法必须仅用于创建资源?
0
A
回答
0
按照HTTP的definition of idempotent:
一样的安全定义,幂等属性只适用于
什么已要求用户;服务器可以自由地分别记录每个请求,保留修订控制历史或实施
对于每个幂等请求其他非幂等的副作用。
因此,只要不影响HTTP服务器提供的资源,您就可以自由修改底层服务器对象中的更新时间。
如果你担心打破幂等(虽然一个可以辩论是否是一个真正的冲突),因此,我要劝你存储updatedTime
在服务器对象场,但只有通过适当的Last-Modified header,而不是揭露它的相关信息将其放入代表资源的响应主体中。
作为一个方面说明,POST不仅是创造资源(见the spec)
相关问题
- 1. 不创建资源的POST
- 2. 创建REST API资源
- 3. REST - 创建业务资源
- 4. REST使用外部ID创建资源
- 5. REST:防止通过条件POST创建重复资源?
- 6. REST api/url设计为多元化/ post方法的资源
- 7. 如何为iPhone创建仅用于资源的包
- 8. 与REST API创建资源组部署
- 9. 必须在不同的java文件中创建方法吗?
- 10. REST:如何在创建新资源时传递相关资源?
- 11. 试用资源:我必须抛出或捕获close()方法的异常吗?
- 12. REST体系结构 - 资源和方法
- 13. 为什么我必须使用WPF中的“资源”?
- 14. REST API中的“投票”资源应该使用哪种方法?
- 15. 如何在不同的资源中重用REST方法?
- 16. 用于创建动力学运动的算法的资源
- 17. 方法不允许。必须是其中一个:POST - Slim Framework
- 18. $ scope是否必须始终用于Angular中的方法定义
- 19. 创建依赖于其他现有资源的资源
- 20. REST资源中的关系
- 21. 资源的REST URL
- 22. Paypal Rest API - 使用PayPal帐户付款资源创建付款
- 23. Chrome扩展的资源必须在web_accessible_resources清单项中列出
- 24. 如何使用nodejs创建POST rest api?
- 25. Android Studio:我必须在哪里放置资产和资源?
- 26. java.io.IOException:WebSocket方法必须是GET
- 27. 方法必须返回int
- 28. 使用Lotus Script的REST“POST”方法
- 29. jQuery .unbind()方法仅适用于jQuery创建的事件吗?
- 30. 用于在Visual Studio中创建GUI的良好资源
没有什么解决。 PUT和POST都可用于创建或更新。通常使用PUT来更新和POST来创建。你的问题不清楚。 – Idos
此信息可能会有所帮助http://stackoverflow.com/questions/2001773/understanding-rest-verbs-error-codes-and-authentication –
我总结我的问题,希望它会更清楚。 如果它说只更新一个资源PUT应该被使用,如果我们必须实现一个非幂等更新方法,如果只有PUT必须被用来进行更新操作,该怎么办? – Belin