Конвертировать JSON в JSON Schema draft 4, совместимый с Swagger 2.0
Мне дали несколько файлов JSON, сгенерированных REST API, с множеством свойств.
Я создал определение Swagger 2.0 для этого API и должен дать ему соответствующую схему для ответа.
Основная проблема: этот 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
Я новичок в этом, но любопытно, не стесняйтесь объяснять глубоко.
Заранее спасибо за вашу помощь !