什么是创建对象的RESTful方法? 我应该在/ resources/URI上使用POST并将URI返回给响应中新创建的资源,还是应该在/ resources/id/URI上使用PUT? /resources/id /的GET请求肯定会返回一个404,但是应该返回一个404以及? 这两种方法应该用来创建一个新的对象吗?我应该对/ resources/id /上的/ resources /或PUT请求使用POST请求来创建新对象吗?
4
A
回答
8
通常,您将使用一种或两种方法,具体取决于您是否希望客户端(以及用户)定义URI。如果客户端POST到resources/
那么服务器可以确定资源的URI。如果客户端PUT到resources/{id}/
那么客户端正在确定资源的URI。
一个例外是,如果创建包括链接,状态和未再适当考虑资源的其他物品 - 你通常不能把这些额外的“构造ARGS”如果你愿意,因为它们不是的一部分资源状态。相反,您必须在这种情况下发布POST。
即使您使用POST进行创建,您仍然可能想要公开PUT进行更新。这取决于资源。
如果你不允许PUT创建,那么是的,你应该在这种情况下返回404。
相关问题
- 1. 如何为POST请求创建对象
- 2. AWS S3:我应该使用POST或PUT请求上传的文件?
- 3. 用于Ajax PUT或POST请求的XML
- 4. 请求POST修改对象?
- 5. POST请求返回[对象,对象]
- 6. 为PUT请求序列化PostData对象
- 7. Fine Uploader POST vs PUT请求
- 8. django-tastypie尝试在POST请求上创建相关对象
- 9. 请求规格:如何通过POST请求创建新用户?
- 10. 创建POST请求到tumblr
- 11. Django:创建/修改请求对象
- 12. 如何创建请求对象?
- 13. POST请求 - 跨来源请求阻止
- 14. Volley Post请求,在Json数组请求中发送Json对象
- 15. 发送JSON对象作为POST请求
- 16. Django通过Post请求删除对象
- 17. 随机POST或PUT请求上的2分钟延迟
- 18. 执行POST请求而不是PUT请求的骨干
- 19. 我应该使用POST还是PUT来创建或更新API调用
- 20. Restlet对POST请求的响应
- 21. HTTP请求对象
- 22. JSON对象请求
- 23. 在Ruby on Rails中创建PUT请求?
- 24. POST GWT CORS请求有效,但PUT CORS请求不会
- 25. Angular:如何在post/put请求成功后获取请求?
- 26. 从请求对象的请求报头复制到URLConnection对象
- 27. PUT请求modrewrite
- 28. Put请求IOS
- 29. 请使用POST请求
- 30. Codeigniter PUT请求
我很困惑。为什么要PUT更新?你需要整个资源来使用PUT来更新它,对吗?再次保存所有资源是无效的(它可能有很多数据)。它可能对资源/ {id}/{field}有意义,但是POST会做什么?我知道按照惯例POST更新和PUT取代(因此,如果资源是空的,它创建一个)。 – 2012-01-01 20:54:14
是的,您将需要使用PUT更新整个资源。它可能看起来效率不高,但它是使用REST架构风格扩展到大型部署的应用程序的关键部分。您必须平衡资源的大小,或者改为使用PATCH方法。 PUT取而代之 - 遵循规范,而不仅仅是约定。 POST执行“其他任何事情”,并且经常用于更新。 – fumanchu 2012-01-01 21:48:21
我仍然不明白为什么我应该允许PUT,如果POST可以用来更新资源。 – 2012-01-02 08:10:36