Was*_*kwa 2 c# asp.net asp.net-web-api asp.net-web-api2
可以使用GET,POST,PUT,DELETE-HTTP动词中的任何一个来传递以及检索值。我们甚至可以使用GET请求更新或删除数据,那么为什么要使用DELETE删除资源?
另外,使用POST方法的意义是什么?如果PUT方法既可以创建记录又可以更新记录,那么它的意义是什么?
实际上,您可以使用POST来执行所有CRUD操作,但您不应该这样做。因为每个HTTP动词都有自己的责任。
GET应该是幂等且安全的。可以缓存GET,并在浏览器中一次又一次刷新。理想情况下,触发GET请求不应更改数据。
如果HttpGet方法可以删除,可以插入,可以更新并且还可以返回值,那为什么我们使用HttpPort,HttpPut和HttpDelete?
想象一个场景。
您有一个Web API方法,该方法使用GET将新条目添加到数据库中。如果您的GET请求成为链接,并且被搜索引擎抓取。您的数据库中将充满重复数据。因此在这种情况下使用POST是有意义的。
选择适当的方法
GET-从资源请求数据,不应产生任何副作用。
POST-方法请求服务器在数据库中创建资源,通常是在提交Web表单时。发布是非幂等的,这意味着多个请求将产生不同的效果。
PUT-方法请求服务器更新资源或创建资源(如果不存在)。Put是幂等的,这意味着多个请求将具有相同的效果。
DELETE-方法请求从数据库中删除资源或其实例。
POST与PUT
POST和PUT非常相似,因为它们都将数据发送到服务器,服务器需要将数据存储在某处。如果使用PUT两次发出相同的请求,两次都使用相同的参数,则第二个请求将无效。这就是为什么PUT通常用于更新方案。
对于不同的Http动词,还有更多限制。
| 归档时间: |
|
| 查看次数: |
1207 次 |
| 最近记录: |