【发布时间】:2016-12-01 10:29:03
【问题描述】:
我收到了一些由具有大量属性的 REST API 生成的 JSON 文件。
我为此 API 创建了 Swagger 2.0 定义,需要为其提供相应的响应架构。
主要问题:这个 JSON 文件有很多属性。如果我手动编写模式,这将花费很多时间,而且我会犯很多错误。这不是我需要描述的唯一 API。
我知道有一些工具可以将 JSON 转换为 JSON 模式,但是,如果我没记错的话,Swagger 只有 $refs 到其他对象定义,因此只有一个级别,而我发现的工具只产生树结构模式. 我的问题:是否有任何工具可以将 JSON(或 JSON Schema)转换为与 Swagger 2.0 兼容的工具?
注意:我正在使用 YAML,但我不会成为问题,不是吗?
例如,我需要什么:
List of Movements:
type: "array"
items:
$ref: "#/definitions/Movement"
Movement:
properties:
dateKey:
type: "string"
movement:
$ref: "#/definitions/Stock"
additionalProperties: false
Stock:
properties:
stkUnitQty:
type: "string"
stkDateTime:
type: "string"
stkUnitType:
type: "string"
stkOpKey:
type: "string"
additionalProperties: false
对于我的 JSON 文档:
[
{
"dateKey": "20161110",
"stkLvls": [
{
"stkOpKey": "0",
"stkUnitType": "U",
"stkDateTime": "20161110T235010.240+0100",
"stkUnitQty": 30
}
]
},
{
"dateKey": "20161111",
"stkLvls": [
{
"stkOpKey": "0",
"stkUnitType": "U",
"stkDateTime": "20161111T231245.087+0100",
"stkUnitQty": 21
}
]
}
]
但是,http://jsonschema.net/#/ 给了我什么:
---
"$schema": http://json-schema.org/draft-04/schema#
type: array
items:
type: object
properties:
dateKey:
type: string
stkLvls:
type: array
items:
type: object
properties:
stkOpKey:
type: string
stkUnitType:
type: string
stkDateTime:
type: string
stkUnitQty:
type: integer
required:
- stkOpKey
- stkUnitType
- stkDateTime
- stkUnitQty
required:
- dateKey
- stkLvls
我是新手,但很好奇,请不要犹豫深入解释。
提前感谢您的帮助!
【问题讨论】:
标签: json swagger jsonschema swagger-2.0