阅读this page,它说:
... PUT请求中的URI标识请求附带的实体 - 用户代理知道预期的URI,服务器不得尝试将请求应用于其他资源。
据此我收集到,我不应该暴露一个URL,它接受PUT请求,其中URL不能唯一地标识资源。 e.g:
http://www.example.com/cars
相反,我应该在以下URL上允许PUT请求:
http://www.example.com/cars/123
但是,在PUT请求中,内容应该包含整个实体,因此可能包含某种主键(如上述URL中的123
)。因此,当内容包含唯一标识符时,为PUT请求公开非唯一URL真的被认为是不好的做法吗?在我的服务中,我想要做的就是从客户端收集数据,因此接受PUT请求的RESTful服务很棒,但我真的不希望URL是唯一的(因为这意味着更多的工作来构建URL客户端)。
答案 0 :(得分:3)
PUT只应在客户端确认在请求完成后确定应包含实体的结果资源时使用。
如果您只是从客户端收集数据,那么您可能应该使用POST。
答案 1 :(得分:0)
这就是为什么在REST语义中,PUT用于更新并创建您应该使用POST的任何资源。