如何为ASP.NET OData WebApi构建PATCH的主体?

时间:2015-01-14 13:55:15

标签: json rest http asp.net-web-api odata

我是PATCH | MERGE的新手,想知道如何使用它,客户端。我不确定在JSON中有效载荷的主体中发送什么。

以下是C#中一个用于讨论目的的人工POCO模型示例。

public class Person
{
  public Guid Id { get; set; }
  public string FullName { get; set; }
  public int Age { get; set; }
}

1 个答案:

答案 0 :(得分:3)

如果您要Google给出答案,您会看到JSON补丁的各种示例,其中JSON有效负载描述了一个或多个操作,例如替换/更新值的操作:

PATCH /people/guid123lalala HTTP/1.1    
Content-Type: application/json-patch

{
  "op": "replace",
  "path": "/FullName",
  "value": "Willy Lopez"
}

或者这个:

PATCH /people/guid123lalala HTTP/1.1    
Content-Type: application/json-patch

[
  {"replace": "/FullName", "value": "Willy Lopez"}
]

(我甚至不确定JSON补丁是否正确。)

但是,不支持application/json-patch格式。因此,截至2015年1月,对于WebApi 2.2上的OData,只需发送省略了不变属性的对象,就像使用普通JSON一样:

PATCH /people/guid123lalala HTTP/1.1    
Content-Type: application/json

{
  FullName: "Willy Lopez"
}