使用PATCH与JSON

时间:2017-05-12 16:58:47

标签: json rest

我有一个REST服务,允许使用PATCH部分更新记录。例如,假设REST服务在名称记录上运行,其中name有三个字段 - 名字,中间名和姓。我的用户记录" Jane Q.用户"在JSON中看起来像这样:

{
  "first" : "Jane",
  "middle" : "Q.",
  "last" : "User" 
}

现在Jane Q.用户合法地将她的姓改为" Admin"并希望我的服务退出显示她的中间名。她的新名字是" Jane Admin"。  她应该提交一个带有新姓氏的PATCH请求,并将中间值设置为空字符串以清除她的中间名这样吗?

PATCH /myservice/users/1

{
  "middle" : "",
  "last" : "Admin" 
}

1 个答案:

答案 0 :(得分:0)

嗯,我不会这么做。如果可能的话,我建议改为让人们发出PUT

PUT /myservice/users/1
{
  "first" : "Jane",
  "last" : "User" 
}

这将取代用户记录。

但是,根据记录的潜在大小,PATCH更容易,因此如果您还要/或使用PATCH进行更新,我建议使用空值。

PATCH /myservice/users/1
{
  "middle" : null
}

但是......如果您的API在响应中返回空值(我个人不喜欢),那么为了保持一致性,空值可能会更有意义..

PATCH /myservice/users/1
{
  "middle" : ""
}

然而,您最终会这样做,只需确保您的一致性,并在记录您的API时,请调用此功能。

干杯。