是否有任何资源可以解释有关WCF数据服务中的PUT,POST,DELETE操作的所有内容?

时间:2010-11-12 10:49:08

标签: rest wcf-data-services

互联网上遇到的每一个资源总是很好地描述了你可以用GET操作做什么,它是如何工作的等等,从来没有解释过POST / PUT / DELETE,尤其是数据的格式你传入HTTP正文(我正在使用JSON)。它总是说“你可以发帖子请求并在正文中传递适当的数据”。

我正在努力做我能做的事而不是。例如,我想知道是否可以通过发送更新的值来更新一个条目的一个字段,而不是整个对象。

是否有任何文件清楚地解释了可能性和限制?

非常感谢。

2 个答案:

答案 0 :(得分:0)

Google的HTTP 1.1规范。

答案 1 :(得分:0)

易于阅读的文档在这里:http://www.odata.org/developers/protocols

如果您想要所有脏的细节和严格的语言,您可以阅读本文档:http://msdn.microsoft.com/en-us/library/dd541188(PROT.10).aspx

您可以通过发送PUT请求来修改单个属性的值。 例如,如果您向此网址发送GET:

http://services.odata.org/(S(kupqbta5wqnfz2cln1qk052x))/OData/OData.svc/Products(0)/Name

您请求JSON(通过Accept标头)响应将是:

{
"d" : {
"Name": "Bread"
}
}

“d”包装器仅用于避免XSS攻击,因此不能包含在请求中,但其余部分保持不变,因此如果您发送这样的PUT请求:

PUT http://services.odata.org/(S(kupqbta5wqnfz2cln1qk052x))/OData/OData.svc/Products(0)/Name HTTP/1.1
Host: services.odata.org
Content-Type: application/json
Content-Length: 20

{
"Name": "Meat"
}

它会将属性Name更新为值Meat。您也可以将PUT发送给值本身,在这种情况下,URL将以$ value结尾(表示属性的原始值),如下所示:

PUT http://services.odata.org/(S(kupqbta5wqnfz2cln1qk052x))/OData/OData.svc/Products(0)/Name/$value HTTP/1.1
Host: services.odata.org
Content-Type: text/plain
Content-Length: 4

Meat

请注意,这仅适用于基本属性。 odata.org上的示例服务允许您进行修改(由URL中的会话密钥保护),因此可以在那里进行修改。