Конвертировать 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

Я новичок в этом, но любопытно, не стесняйтесь объяснять глубоко.

Заранее спасибо за вашу помощь !

Ответы на вопрос(3)

Ваш ответ на вопрос