2017-04-24 70 views
1

从Microsoft SharePoint文档中,我可以使用此请求获取站点的Web属性:“http:/// _ api/web /”(请参阅​​:https://msdn.microsoft.com/en-us/library/office/dn499819.aspx)。使用SharePoint rest api设置站点的Web属性

有一些属性是R/W。 当我尝试创建这些R/W属性时,我得到200 OK响应,但属性值保持不变。

例如。 property_name - SaveSiteAsTemplateEnabled。 最初它的值为True 初始GET响应:

{ 
    "odata.metadata": "https://druvainternal.sharepoint.com/sites/testsharepoint/subsite1copy/_api/$metadata#Edm.Boolean", 
    "value": true 
} 

然后当我尝试使用后调用来改变它的值或合并呼叫。 要求:

"post" 
endpoint - _api/web/SaveSiteAsTemplateEnabled 
body = {"value":False} 

我得到的回应是:

{"odata.metadata":"https://druvainternal.sharepoint.com/sites/testsharepoint/subsite1copy/_api/$metadata#Edm.Boolean","value":true 
} 

,其价值仍然是正确的。

我发送正确的请求吗?在文档中没有提到如何设置这些属性。

回答

1

由于Web.SaveSiteAsTemplateEnabled propertyWeb class的属性,因此需要为此构建一个更新Web资源的请求。

下面的例子演示了如何更新SPWeb.SaveSiteAsTemplateEnabled property

Endpoint Url: [web url]/api/web 
Method: POST 
Headers: 
    "X-HTTP-Method":"MERGE" 
    "If-Match":"*" 
Data: 
    {"SaveSiteAsTemplateEnabled":false,"__metadata":{"type":"SP.Web"}} 
+2

感谢瓦迪姆的基切,回复它解决了我的问题。 在头文件中,我不得不添加 “content-type”=“application/json; odata = verbose” 否则它会提供“__metadata不存在于SP.Web” –