HTTP 动词、WebAPI

HTTP Verbs, WebAPI

我想知道 POST 与 WebAPI 中 PUT 的使用场景。我知道 POST 用于创建资源而 PUT 用于更新资源的基本概念,但无法完全理解为什么我们需要 PUT 而不是 POST.

我有 2 个 WebAPI 方法 creates/updates 数据到我的 SQL 存储 1. 创建用户(UserDto) 2.更新用户(UserDto)

UserDto 包含用户 ID、用户名和电子邮件。

我可以将 POST 用于 CreateUser 和 UpdateUser 方法,这些方法创建用户并将其更新到我的商店。

那么CreateUser使用POST,updateuser使用PUT的真正优势是什么?它只是一个 standard/convention 吗?

谢谢

POST 总是创造新事物。 PUT 更新现有事物。这是一个惯例。

你应该有:

POST /users : 创建一个新用户。负载不应包含 ID

PUT /user/(id) :用负载中的数据替换用户 DTO。同样,有效负载不应包含用户 ID

PATCH /user/(id):更新特定成员的用户,但是id。

它是一种设计约定,就像软件设计模式一样,可以让必须使用 API 的任何人轻松交流和理解。

POST 通常用于将新资源添加到资源集合中。 像这样:POST /users。 此操作不是幂等的,每次调用都会产生副作用。

虽然 PUT 通常与替换语义一起使用,并且您知道要替换的确切资源。 像这样:PUT /users/1。 该操作是幂等的,不会对后续调用产生任何副作用。