2016-06-09 21 views
0

当我们使用PATCH时,我们正在部分更新资源。如果我想删除部分资源,最佳做法是什么?如何通过安静的PATCH删除子资源

例如:我们有一个Person资源:

Person: 
{ 
    id: 3, 
    name: 'test', 
    companyId: 1, 
} 

比方说这个人离开了公司,并没有工作,那么companyId应设置为在DB null。当我想通过API删除Person中的companyId时,是否应将有效负载中的companyId设置为null

PATCH: /person/3

Person: 
{ 
    id: 3, 
    companyId: null, 
} 

我使用它设置为{}删除对象,或将其设置为[]删除阵列,但我不是100%确定什么是一个基本属性的最佳实践(如在这种情况下的companyId)。任何想法?

感谢

回答

2

望着RFC 6902(定义修补程序标准),从客户的角度来看,API可以被称为像

PATCH /person/3 

[ 
    { "op": "remove", "path": "/companyId"} 
] 

我想确切的内部实现(可空INT比0/-1作为默认值)取决于您。

+0

*建议*标准。还没有被接受,但我个人认为这是'PATCH'的正确方法。 –

相关问题