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