2015-01-14 33 views
1

我是PATCH | MERGE的新手,想知道如何在客戶端使用它。我不確定要在JSON中的有效內容的主體中發送什麼。如何構成ASP.NET OData WebApi的PATCH主體?

下面是一個人爲的例子POCO模型在C#中的討論目的。

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

回答

2

如果谷歌的答案,你會看到那裏的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月,爲的OData上的WebAPI 2.2,只是省略了不更改屬性,像這樣使用正常的JSON發送的對象:

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

{ 
    FullName: "Willy Lopez" 
} 
+0

如果使用jQuery送它也是值得注意的是,你的消息不能只設置你的Content-Type頭並傳遞一個數據對象。你必須[stringify對象](http://stackoverflow.com/questions/6587221/send-json-data-with-jquery)。 – user2880616