HTTP动词,WebAPI

时间:2017-03-17 16:34:36

标签: asp.net-web-api restful-architecture httpverbs

我想知道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的真正优势是什么?它只是一个标准/惯例吗?

谢谢

2 个答案:

答案 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。 此操作是幂等的,它不会对后续调用产生任何副作用。

相关问题