【问题标题】:Set Web properties of a site using SharePoint rest api使用 SharePoint rest api 设置网站的 Web 属性
【发布时间】:2017-04-24 09:57:09
【问题描述】:

从 Microsoft SharePoint 文档中,我可以使用以下请求获取网站的 Web 属性:“http:///_api/web/”(参考:https://msdn.microsoft.com/en-us/library/office/dn499819.aspx)。

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

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

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

然后,当我尝试使用 post call 或 merge call 更改其值时。 请求:

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

我得到的回应是:

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

其值仍为 True。

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

【问题讨论】:

    标签: sharepoint


    【解决方案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"}}
    

    【讨论】:

    • 感谢 Vadim 的快速回复,它解决了我的问题。在标题中,我必须添加“content-type”=“application/json;odata=verbose”,否则它会给出“__metadata 在 SP.Web 上不存在”
    • 我在尝试使用此解决方案后问了一个类似的问题:stackoverflow.com/questions/59054606/… 这可能会帮助该解决方案不适用的用户。我愿意接受将这些信息整合到您的问题中和/或在不正确时删除此评论的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多