我相信前段时间已经读过,在知道id时创建资源(例如:email
)应该使用该资源上的PUT来完成。
例如为:
PUT /user/chris@example.com
这是正确的吗?
答案 0 :(得分:3)
是的,使用
是正确的PUT resource/{id} --> 204 No Content
当客户端指定资源的id
且操作是幂等的时。如果连续两次或多次执行该操作具有与执行一次相同的效果,则该操作是幂等的。
如果您使用POST
,通常不提供客户端标识符。相反,服务器选择自己的标识符,并通过发送带有201 Created
标题的Location
响应来通知客户端创建的资源位置。
POST resource --> 201 Created
Location: /resource/7
答案 1 :(得分:1)
是的,使用PUT
创建具有已知URI的资源是正确的。 PUT
要求服务器将目标URI上的资源替换为有效负载中的资源表示,因此您必须知道目标URI。但请注意,PUT
需要完整的表示形式,因此,如果您要创建或更新表示不完整的资源,则应使用POST
。
答案 2 :(得分:0)
我认为更正确的做法是通过POST在新网址上进行操作,并创建如果该ID不存在。 因为PUT方法是幂等的(例如,如果你多次发送一个请求 - 结果会相同)。