在做API设计时,纠结新增的时候用POST还是PUT,更新的时候用POST还是PUT,到底改如何选择。
具体还要看使用场景,这里面涉及一个幂等性的问题。
PUT方法还是POST方法?这取决于这个REST服务的行为是否是幂等的,假如我们发送两个http://xxx/xxx/test请求,服务器端是什么样的行为?如果产生了两条记录,那就说明这个服务不是幂等的,因为多次使用产生了副作用了;如果后一个请求把第一个请求覆盖掉了,那这个服务就是幂等的。
不要求接口幂等(比如insert),应该使用POST方法,对接口幂等有要求(比如update),应该使用PUT方法。
总结,大多数情况下,我们使用POST方法来完成新增操作,使用PUT来完成更新操作。