我想知道WebAPI中POST与PUT的使用场景。我知道POST用于创建资源和PUT的基本概念是用于更新资源但不能完全理解为什么我们需要通过POST进行PUT。
我有2个WebAPI方法,可以为我的SQL存储创建/更新数据 1. CreateUser(UserDto) 2. UpdateUser(UserDto)
UserDto包含userId,用户名和电子邮件。
我可以将POST用于创建和更新用户到我的商店的CreateUser和UpdateUser方法。
那么对于updateuser,使用POST for CreateUser和PUT的真正优势是什么?它只是一个标准/惯例吗?
谢谢
答案 0 :(得分:0)
POST始终会创建新内容。 PUT更新现有的东西。这是一个惯例。
你应该:
POST / users:创建新用户。有效负载不应包含ID
PUT / user /(id):用有效负载中的数据替换用户DTO。同样,有效负载不应包含用户标识
PATCH / user /(id):更新用户的特定成员,但是id。
这是一种设计惯例,就像软件设计模式一样,可以让任何必须使用API的人都能轻松地进行交流和理解。
答案 1 :(得分:0)
POST通常用于将新资源添加到资源集合中。
像这样:POST /users
。
此操作不是幂等的,每次调用都会产生副作用。
虽然PUT通常与替换语义一起使用,但您知道要替换的确切资源。
像这样:PUT /users/1
。
此操作是幂等的,它不会对后续调用产生任何副作用。