假设我的应用程序想要从中访问数据有多个REST API。每个API都支持JSON响应,但用于描述数据的字段不同。因此,一个API可以使用 time ,而另一个API可以使用 timestamp 作为时间戳数据的关键字。类似地, location 等其他字段可以用不同的方式表示。
我摄取这种异构数据的一种方法是为每个API编写一个包装器。但是,我想要一种更通用的方法。
我的应用程序希望从每个API的JSON响应中检索(说)以下字段:
我正在考虑编写单个JSON解析器,但指定一个配置文件,它告诉解析器哪个字段代表什么。所以它看起来像:
对于API1(比如说)
对于API2(比如说)
我确信现有的方法可以让你指定这样的数据描述,但我找不到。有人能指出我正确的方向吗?
修改 如果有一种通用的方法不仅可以解析,还可以为这些REST API创建查询,也请告诉我。例如,某些API接受时间间隔作为查询参数。这些查询参数也不同于API到API。因此,请建议如何编写一个通用查询模块,该模块接受一个配置文件,告诉模块如何形成查询。
答案 0 :(得分: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"]
}