是否有一种方法可以使用包含值,错误和警告字段的通用基础响应



因此,根据官方文档样本,OneNote的响应可能具有以下结构:

{
  value:{the content we requested},
  error:{error if exists with warnings inside if exist},
  @api.diagnostics:{warnings if exist}
}

但是,如果响应主体不包含JSON数组而是JSON对象,则响应将是以下

{
  Here would be entity, representing the content we requested
}

所以,我的问题是下一个:有没有办法将OneNote API的响应统一,因为当前的响应结构违反了其合同。

由于我有能力使用拦截器更改我的请求模块,因此输出看起来像我需要,这似乎是一个肮脏的解决方法,所以我想查看有关此问题的官方信息。

实际上,除了上面提到的一个肮脏的解决方法之外,没有办法。为了重构OneNote(和其他普通服务)API,应该实现拦截器或Servlet之类的东西,将所有未知属性转移到新的根JSON属性中,这似乎是授权的属性,使其类似于其格式收集表示数据的响应。因此,除非将API重组以匹配良好的样式否则无能为力。希望Microsoft的某人能看到这一点,并对API实现为何发表评论。

http://www.odata.org/getting-started/basic-tutorial/

OneNote API是ODATA API-这意味着它符合ODATA标准,其中返回数组作为值属性的一部分。

虽然阵列中的实体在"值"属性中返回:

{ value:[element1, element2, ...], }

和特定实体不是

{ element1 }

这相对容易求解任何通过使用容器类用于ODATA有效载荷的语言,例如:

class ODataPayload<T>{ Public IList<T> Values {get; set;} }

这样,您可以在获得多个实体和odatapayload时解析" t"。

或者您也可以使用http://json2csharp.com/之类的东西来生成您的解析类。

请注意,仅使用4xx AD 5XX状态代码返回错误。任何2xx状态代码都应给您一个实体。

相关内容

最新更新