【问题标题】:asp.net mvc and web api which is better Http POST or PUTasp.net mvc 和 web api 哪个更好 Http POST 或 PUT
【发布时间】:2014-10-17 02:23:06
【问题描述】:

我有一个 asp.net mvc 和 web api 类型的应用程序。 我对 http post 和 http put 有点困惑。 什么时候用什么,各有什么优缺点。 我浏览了许多博客,但没有充分的理由说明设计的目的。

【问题讨论】:

标签: asp.net asp.net-mvc http-post asp.net-web-api http-put


【解决方案1】:

使用POST,您必须从头开始创建全新的记录。 使用PUT 来更新数据库中的现有记录

这里是 PUT 和 POST 之间的区别

   `POST is Not idempotent`--> 

意味着一次又一次地运行 POST 操作将在每次运行调用时创建新实例。

`PUT is Idempotent`--> 

PUT 是幂等操作,一次又一次调用 PUT 将产生相同的结果。

所以 POST 不是幂等的,而 PUT 是幂等的。

`There is also PATCH` -->

当您只需要更新模型的少数属性时使用补丁。换句话说,部分更新。

【讨论】:

    【解决方案2】:

    简单地说(没有双关语):

    POST 通常用于创建新对象。

    PUT 通常用于更新现有对象

    使用正确的 HTTP 动词可以让您发布更简洁的 API,并且无需在端点 (url) 内编码意图。例如,比较:

    使用正确的动词:

    GET    api/user/12345
    POST   api/user/12345
    PUT    api/user/12345
    DELETE api/user/12345
    

    破解端点:

    GET  api/user/12345
    POST api/user/12345/create
    POST api/user/12345/update
    POST api/user/12345/delete
    

    我认为使用PUT 等的唯一缺点是并非所有开发人员都熟悉它们,并且某些第三方软件可能不支持它们,或者至少它可能不像使用那么容易像GET & POST 这样更熟悉的动词。

    例如,几周前我遇到了一个问题,当时我在 API 即将上线之前放置了一个代理,并且代理不支持 HTTP PUT 动词(可能是配置问题 - 但是我们无法访问代理来修复它)所以我们不得不调整 API 并在最后一分钟将其更改为POST(这也意味着我们必须更改正在使用它的客户端(移动应用程序)) .

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 2012-12-28
      • 1970-01-01
      • 2020-05-19
      相关资源
      最近更新 更多