当我们使用PATCH时,我们正在部分更新资源。如果我想删除部分资源,最佳做法是什么?
例如:我们有一个Person资源:
Person:
{
id: 3,
name: 'test',
companyId: 1,
}
假设此人离开公司并且没有工作,那么公司ID应该在数据库中设置为null
。当我想通过API删除companyId
中的Person
时,我是否应将有效负载中的companyId设置为null
?
PATCH: /person/3
Person:
{
id: 3,
companyId: null,
}
我过去通过将其设置为{}
来移除对象,或者通过将其设置为[]
来删除数组,但我不是100%确定什么是最佳做法原始属性(在本例中类似于companyId
)。有什么想法吗?
由于
答案 0 :(得分:2)
查看RFC 6902(定义补丁标准),从客户端的角度来看,可以调用API,如
PATCH /person/3
[
{ "op": "remove", "path": "/companyId"}
]
我认为确切的内部实现(nullable int vs 0 / -1为默认值)取决于你。