从哲学上讲,我对如何处理以下REST场景的一些示例提出了疑问:
1)登录的用户想要“喜欢”'某人的博客发帖。用户ID是guid,博客帖子是guid。这应该是PUT,因为用户/博客存在,或POST,因为“收藏夹”中没有条目。表?
2)数据库中的安全行由10多个属性组成,但我只想更新实体的一部分(用户登录尝试失败次数)。电话应该是什么?用JSON传递整个数据传输对象?或者只是为要更新的特定操作添加新的api路由?即只有一个参数(登录尝试次数)的PUT并传递用户的id。
3)类似于#2,一个用户类(由25多个属性组成),但我只是喜欢用户更新类的特定部分,而不是整个事物。哲学上我需要传递整个用户对象吗?或者只更新一件事就可以了。看起来我可能会变得疯狂,并针对特定属性进行大量特定调用,但实际情况是,我可能只会更新用户的2-3个特定部分(以及显然在其他情况下更新整个内容)。这里有什么方法来更新数据库中实体的特定部分?
非常感谢
答案 0 :(得分:1)
使用REST,一切都是关于更新离散资源(“名词”)。这取决于你想要如何分配这些,但是一个简单的接口,它使用动词(“PUT”,“GET”,“DELETE”等),合理地返回相关的HTTP代码,并且很容易让其他人实现最好的方式。
所以,问问自己,“我想给CRUD提供哪些名词,我是否会耗尽那些希望使用我的API的人?”