определение сложного объекта в чванстве для openapi 3 - PullRequest
0 голосов
/ 29 мая 2019

У меня есть следующий json, я пытался создать чванство для использования спецификаций openapi3.

где числовой ключ (т. Е. "1111") - это динамический уникальный идентификатор.

{
    "11111": {
        "cat1": {
            "catId": "abcd",
            "value": 700
        },
        "cat2": {}
    },
    "11112": {
        "cat1": {
            "catId": "xyz",
            "value": 40
        },
        "cat2": {
            "catId": "fghj",
            "value": 40
        }
    },
    "45677": {
        "cat1": {
            "catId": "abcd",
            "value": 50
        },
        "cat2": {
            "catId": "xyz",
            "value": 50
        }
    },
    "date": "2019-05-29"
}

Я попробовал инструмент для генерации спецификации на основе образца json http://apistudio.io/, но он действительно не дал мне то, что я искал.

Это самое близкое, что я получил, но это не совсем то, что я хочу:

responses:
        200:
          description: category response
          content:
            application/json:
              schema:
                properties:
                  date:
                    type: string
                    format: date
                  categories:
                    properties:
                      key:
                        type: string
                      cat1:
                        items:
                          $ref: '#/components/schemas/cat1'
                      cat2:
                        items:
                          $ref: '#/components/schemas/cat2'
        404:
          description: error
            application/json:
              schema:
                $ref: '#/components/schemas/error'

components:
  schemas:
    cat1:
      required:
        - cadId
        - value
      properties:
          cadId:
            description: Category id
            type: string
            enum: [
              abcd
              xyz
            ]
          value:
            type: number
            format: int64
    cat2:
      required:
        - cadId
        - value
      properties:
          cadId:
            description: Category id
            type: string
            enum: [
              fghj
            ]
          value:
            type: number
            format: int64
    error:
      type: object
      required:
      - statusCode
      - code
      - message
      - description
      properties:
        statusCode:
          type: integer
          format: int32
        code:
          type: string
        message:
          type: string
        description:
          type: string

Это пример, который генерирует мой код, поскольку вы можете видеть, что он не соответствует тому, что мне нужно:

{
  "date": "2019-05-29",
  "categories": {
    "key": "string",
    "cat1": [
      {
        "cadId": "abcd xyz",
        "value": 0
      }
    ],
    "cat2": [
      {
        "cadId": "fghj",
        "value": 0
      }
    ]
  }
}

Заранее спасибо

...