根据HTTP/1.1规范:
该
POST方法用来请求原始服务器接受被附在请求由标识的资源的新下属实体Request-URI的Request-Line
换句话说,POST用于创建.
该
PUT方法请求将所包含的实体存储在提供的实体下Request-URI.如果Request-URI引用已经存在的资源,则封闭的实体应该被视为驻留在源服务器上的实体的修改版本.如果Request-URI未指向现有资源,并且该URI能够被请求用户代理定义为新资源,则源服务器可以使用该URI创建资源.
也就是说,PUT用于创建或更新.
那么,应该使用哪一个来创建资源?或者需要支持两者?
但是,Stripe API 用于Post更新对象。为什么是这样?
例如,在Stripe 节点库中
update: stripeMethod({
method: 'POST',
path: '{id}',
}),
Run Code Online (Sandbox Code Playgroud)
该update方法调用POST
我知道没有Patch方法,因为每次调用时都必须发送整个资源,为什么Put在这种情况下不使用 HTTP 动词?
(与有关 Facebook API 的 SO 问题中的示例不同,资源可以通过 URL 中传递的单个 ID 来识别)例如 URL 很简单/v1/customers/:id