Asp.net web api HTTP动词,WebAPI
我想知道POST和PUT在WebAPI中的使用场景。我知道POST是用来创建资源的,PUT是用来更新资源的,但我不能完全理解为什么我们需要一个PUT来覆盖POST 我有两个WebAPI方法,用于创建/更新SQL存储区中的数据 1.CreateUser(UserDto) 2.更新用户(UserDto) UserDto包含用户ID、用户名和电子邮件 我可以对CreateUser和UpdateUser方法使用POST,这两种方法都可以创建用户并将用户更新到我的商店 那么,将POST用于CreateUser和PUT用于updateuser的真正优势是什么?这只是一个标准/惯例吗Asp.net web api HTTP动词,WebAPI,asp.net-web-api,restful-architecture,httpverbs,Asp.net Web Api,Restful Architecture,Httpverbs,我想知道POST和PUT在WebAPI中的使用场景。我知道POST是用来创建资源的,PUT是用来更新资源的,但我不能完全理解为什么我们需要一个PUT来覆盖POST 我有两个WebAPI方法,用于创建/更新SQL存储区中的数据 1.CreateUser(UserDto) 2.更新用户(UserDto) UserDto包含用户ID、用户名和电子邮件 我可以对CreateUser和UpdateUser方法使用POST,这两种方法都可以创建用户并将用户更新到我的商店 那么,将POST用于CreateUs
谢谢你这篇文章总能创造一些新的东西。将更新放在现有的东西上。这是一个惯例 你应该: 发布/用户:创建新用户。有效载荷不应包括ID PUT/user/(id):用有效负载中的数据替换用户DTO。同样,有效负载不应包含用户id 修补程序/用户/(id):更新用户的特定成员,但不更新id
这是一种设计惯例,就像软件设计模式一样,使任何使用API的人都能轻松地进行沟通和理解。POST总是会创造一些新的东西。将更新放在现有的东西上。这是一个惯例 你应该: 发布/用户:创建新用户。有效载荷不应包括ID PUT/user/(id):用有效负载中的数据替换用户DTO。同样,有效负载不应包含用户id 修补程序/用户/(id):更新用户的特定成员,但不更新id
与软件设计模式一样,它是一种设计惯例,使任何必须使用API的人都能轻松地进行沟通和理解。POST通常用于将新资源添加到资源集合中。 像这样:
POST/users
。
这个操作不是幂等的,每次调用都会产生副作用
而PUT通常与replace语义一起使用,您知道要替换的确切资源。
像这样:PUT/users/1
。
此操作是幂等的,不会对后续调用产生任何副作用。POST通常用于将新资源添加到资源集合中。 像这样:
POST/users
。
这个操作不是幂等的,每次调用都会产生副作用
而PUT通常与replace语义一起使用,您知道要替换的确切资源。
像这样:PUT/users/1
。
此操作是幂等的,不会对后续调用产生任何副作用。不同之处在于PUT在设计上是幂等的。检查此标记以了解更多信息:如果PUT在设计上是幂等的,这是因为根据HTTP规范,其URI是要创建或更新的对象的标识符(与POST相反)。许多问题可能重复:区别在于PUT在设计上是幂等的。检查此标记以了解更多信息:如果PUT在设计上是幂等的,这是因为根据HTTP规范,其URI是要创建或更新的对象的标识符(与POST相反)。许多问题可能重复:“POST总是创建新的东西”:不一定(例如,如果有效负载包含ID)。它取决于API(与PUT相反,PUT总是幂等的,因为对象的sID是URI)?发送409代码确实可以实现幂等性。通过这样做,“N>0个相同请求的[存储中]副作用与单个请求相同”。“POST总是创建新的内容”:不一定(例如,如果有效负载包含ID)。它取决于API(与PUT相反,PUT总是幂等的,因为对象的sID是URI)?发送409代码确实可以实现幂等性。通过这样做,“N>0个相同请求的[存储中]副作用与单个请求相同”。