从原始odata响应中删除与Sharepoint相关的属性

时间:2015-08-19 10:22:16

标签: node.js sharepoint odata

我正在使用Sharepoint REST API从NodeJS获取/修改Sharepoint中的数据。

我从Sharepoint REST API获得odata响应,一切都按预期工作。 除了一件事。

目前我从Sharepoint REST API获得响应,如下所示

{
    "odata.metadata": "https://test.sharepoint.com/_api/$metadata#SP.ApiData.Lists",
    "value": [
        {
            "odata.type": "SP.List",
            "odata.id": "https://test.sharepoint.com/_api/Web/Lists(guid'sample-guid')",
            "odata.etag": "\"6\"",
            "odata.editLink": "Web/Lists(guid'sample-guid')",
            "AllowContentTypes": true,
            "BaseTemplate": 160,
            "BaseType": 0,
            "ContentTypesEnabled": true,
            "CrawlNonDefaultViews": false,
            "Created": "2015-05-19T11:13:46Z",
            "DefaultContentApprovalWorkflowId": "00000000-0000-0000-0000-000000000000",
            "Description": "Use this list to track access requests to a site or uniquely permissioned items in the site.",
            "Direction": "none",
            "DocumentTemplateUrl": null,
            "DraftVersionVisibility": 0,
            "EnableAttachments": false,
            "EnableFolderCreation": false,
            "EnableMinorVersions": false,
            "EnableModeration": false,
            "EnableVersioning": true,
            "EntityTypeName": "AccessRequests",
            "FileSavePostProcessingEnabled": false,
            "ForceCheckout": false,
            "HasExternalDataSource": false,
            "Hidden": true,
            "Id": "sample-id",
            "IrmEnabled": false,
            "IrmExpire": false,
            "IrmReject": false,
            "IsApplicationList": false,
            "IsCatalog": false,
            "IsPrivate": false,
            "ItemCount": 1,
            "LastItemDeletedDate": "2015-05-19T11:13:46Z",
            "LastItemModifiedDate": "2015-08-04T06:57:22Z",
            "ListItemEntityTypeFullName": "SP.Data.AccessRequestsItem",
            "MajorVersionLimit": 0,
            "MajorWithMinorVersionsLimit": 0,
            "MultipleDataList": false,
            "NoCrawl": true,
            "ParentWebUrl": "/",
            "ParserDisabled": false,
            "ServerTemplateCanCreateFolders": true,
            "TemplateFeatureId: "sample-id",
            "Title": "Test Title"
        }, {
        ........
    }]
}

在上面的回复中,我得到了与Sharepoint系统相关的字段以及我想要的字段。 例如: odata.type odata.id AllowContentTypes BaseTemplate 等。

如何获取我需要的字段,而不是其他与Sharepoint相关的字段。

有人可以帮忙吗?

由于

1 个答案:

答案 0 :(得分:0)

为此,您可以使用$select查询选项(请点击OData Version 2.0了解详情)。

  

关于odata.typeodata.id属性,因为它们是其中的一部分   元数据属性,您只需指定正确的Accept   标头以便请求它们(例如:accept: application/json;odata=minimalmetadata)。有关详细信息,请参阅JSON Light support in REST SharePoint API released文章。

以下示例返回一组特定的List资源属性,例如AllowContentTypesBaseTemplate

Endpoint URI: https://contoso.sharepoint.com/_api/web/lists?$select=AllowContentTypes,BaseTemplate 
Accept: application/json; odata=minimalmetadata
Method: GET

<强>结果

{
    "d": {
        "results": [
            {
                "__metadata": {
                    "id": "https://contoso.sharepoint.com/_api/Web/Lists(guid'82dcfcc5-e58c-4610-b4c3-589a7228e912')",
                    "uri": "https://contoso.sharepoint.com/_api/Web/Lists(guid'82dcfcc5-e58c-4610-b4c3-589a7228e912')",
                    "etag": "\"0\"",
                    "type": "SP.List"
                },
                "AllowContentTypes": true,
                "BaseTemplate": 125
            },
            //...
        ]
    }
}