1

假设我的应用程序想要从多个 REST API 访问数据。每个 API 都支持 JSON 响应,但用于描述数据的字段不同。因此,一个 API 可能使用时间,而另一个 API 可能使用时间戳作为时间戳数据的键。类似地,其他字段(如位置)可能会以不同方式表示。

我获取此类异构数据的一种方法是为每个 API 编写一个包装器。但是,我想要一种更通用的方法。

我的应用程序想要从每个 API 的 JSON 响应中检索(比如说)以下字段:

  • 时间戳
  • 纬度
  • 经度

我正在考虑编写一个 JSON 解析器,但指定一个配置文件来告诉解析器哪个字段代表什么。所以它看起来像:

对于 API1(比方说)

  • 时间戳='时间'
  • 纬度 = '位置'[0]
  • 经度='位置'[1]

对于 API2(比方说)

  • 时间戳='时间戳'
  • 纬度 = '纬度'
  • 经度 = 'lng'

我相信会有现有的方法可以让你指定这样的数据描述,但我一直找不到。有人能指出我正确的方向吗?

编辑: 还请让我知道是否有一种通用方法不仅可以解析而且还可以为此类 REST API 创建查询。例如,一些 API 接受时间间隔作为查询参数。这些查询参数也因 API 不同而不同。因此,请建议如何编写一个接受配置文件的通用查询模块,该配置文件告诉模块如何形成查询。

4

1 回答 1

1

我认为您正在寻找类似JSON Schema的东西。

从链接:

一种基于 JSON 的格式,用于定义 JSON 数据的结构。JSON Schema 为给定应用程序需要哪些 JSON 数据以及如何与之交互提供了一个契约。JSON Schema 旨在定义 JSON 数据的验证、文档、超链接导航和交互控制。

这是网站上给出的示例:

{
    "title": "Example Schema",
    "type": "object",
    "properties": {
        "firstName": {
            "type": "string"
        },
        "lastName": {
            "type": "string"
        },
        "age": {
            "description": "Age in years",
            "type": "integer",
            "minimum": 0
        }
    },
    "required": ["firstName", "lastName"]
}
于 2013-05-22T18:00:41.667 回答