0

我正在处理 MS SharePoint 2013 集成,在我的用例中,我只想处理 JSON 数据。
我能够使用节点模块 - datajs_vanilla将所有 API XML 响应(如文件、文件夹、列表、ListItem 等)转换为 OData JSON ,但我无法将https://mysite/_api/ $metadata转换为 OData JSON。为 $metadata 端点执行 datajs 时出现以下错误:

error:{"message":"no handler for data"} 

下面是我的代码片段:

OData.read({
        requestUri: 'https://example.com/_api/$metadata',
        headers: {
                    'Authorization': 'Bearer token_value',
                    'Accept':'application/xml;charset=utf-8' 
                 } 
        }, function (data, response) {
            console.log("Operation succeeded."+JSON.stringify(data));
    }, function (err) {
        console.log("Error occurred " + JSON.stringify(err));
});

我在这里遗漏了一些要转换为 JSON 的东西?
或者
您能否建议我使用节点模块将 edmx sharepoint $metadata XML 响应转换为 OData JSON 的可能解决方案?

谢谢。

4

1 回答 1

1

请参阅类似问题的答案Get OData $metadata in JSON format

元数据文档未使用OData atom/xml 格式定义,这就是 datajs vanilla 无法解析它的原因。元数据格式为CSDL 格式。元数据文档示例 - http://services.odata.org/V4/TripPinServiceRW/$metadata

通常用于发现和客户端生成的元数据,因为它具有类型信息和所有实体关系。将服务响应序列化为 json 和 json 中的服务文档应该足以让您使用服务。

于 2016-08-02T01:48:30.313 回答