Rest 为什么Facebook API使用POST更新记录?

Rest 为什么Facebook API使用POST更新记录?,rest,facebook-graph-api,Rest,Facebook Graph Api,例如: 来自Rails/REST背景,我觉得使用PUT或补丁进行更新是最佳实践。所以我想知道,为什么Facebook只是使用POST进行更新 是因为POST和GET比4或5种不同的HTTP方法更简单吗?还是因为他们支持一些只有这些功能的设备?或者他们是否计划使用PUT/PATCH?有什么想法吗 使用just POST创建和更新记录似乎很好,因此您不必关心实现,而是想知道这背后的原因。他们不使用PUT或PATCH,因为URL不指向特定项的实际位置,而是指向整个集合。如果您希望项的实际ID主键是消息

例如:

来自Rails/REST背景,我觉得使用PUT或补丁进行更新是最佳实践。所以我想知道,为什么Facebook只是使用POST进行更新

是因为POST和GET比4或5种不同的HTTP方法更简单吗?还是因为他们支持一些只有这些功能的设备?或者他们是否计划使用PUT/PATCH?有什么想法吗


使用just POST创建和更新记录似乎很好,因此您不必关心实现,而是想知道这背后的原因。

他们不使用PUT或PATCH,因为URL不指向特定项的实际位置,而是指向整个集合。如果您希望项的实际ID主键是消息正文的一部分,那么它就是主键

在FB示例中,似乎页面id、主页id、商店编号和位置页面id都是标识资源所必需的。页面IDI已经存在,但为了使用PUT,他们必须将其他页面也放在URL中:

PUT /v2.1/{page-id}/locations/{main_page_id}/{store_number}/{location_page}

出于某种原因,他们不想走那条路。所以它变得很难看,因为他们混合了物品的有效载荷和地址。一般来说,人们希望消息体的内容包含对URL所指向的地址处的资源所做的更改。物品的ID是地址,因此是不可变的,因此它不属于身体。

请参阅@DanMan您的链接,它给出了关于POST/PUT/PATCH的一般概念,但它认为问题更多的是,当“每个人”都说要使用PUT或PATCH时,他们为什么选择POST。至少我想得到这方面的信息。