asp.net mvc和web api哪个更好Http POST或者PUT

我有一个asp.net mvc和web api类型的应用程序。 我对http post和http put有点困惑。 什么时候使用什么,什么是每个的优点和缺点。 我已经浏览了很多博客,但没有什么固定的原因是为什么而设计的。


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

这是PUT和POST之间的区别

   `POST is Not idempotent`--> 

每次运行POST操作时,都会创建新的实例。

`PUT is Idempotent`--> 

PUT是一次又一次地调用PUT的幂等操作会导致相同的结果。

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

`There is also PATCH` -->

如果只需更新模型的几个属性,请使用修补程序。换句话说,部分更新。


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

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等的唯一缺点是不是所有的开发人员都熟悉它们,并且一些第三方软件可能不支持它们,或者至少它可能不如使用更常见的动词如GETPOST

例如,我几周前遇到了一个问题,即在代理被置于API前面并且代理不支持HTTP PUT动词(可能是配置问题 - 但我们没有有权访问代理来修复它),所以我们必须调整API并在最后时刻将其更改为POST (这也意味着我们必须更改使用它的客户端(移动应用程序))。

链接地址: http://www.djcxy.com/p/41035.html

上一篇: asp.net mvc and web api which is better Http POST or PUT

下一篇: when should I use POST and GET?