Описание свойств в примере чванства - PullRequest
0 голосов
/ 20 февраля 2020

Попробуйте добавить многострочный пример в определении ответа JSON в чванстве. Нужно получить структуру вроде

{
    "result": {
        "urls": {
            "site/index": true,
            "site/create": true,
            "site/update": true,
            "site/delete": true,
            "site/types": true,
            "site/save": false
        }
    }
} 

, но теперь все, что у меня есть,

{
  "result": {
    "urls": [
      {
        "site/index": true
      },
      {
        "site/create": true
      },
      {
        "site/update": true
      },
      {
        "site/delete": true
      },
      {
        "site/types": true
      },
      {
        "site/save": false
      }
    ]
  }
}

Мой файл YAML выглядит как

swagger: "2.0"
info:
  description: "xxx"
  version: 1.2.8
  title: "xxx"
host: "xxx"
basePath: "xxx"
schemes:
- "https"

consumes:
  - application/json
produces:
  - application/json            

  /site/check:
    post:
      summary: ""
      description: ""
      parameters:
        - in: body
          name: urls
          required: true
          schema:
            $ref: '#/definitions/CheckAccess'
      responses:
        200:
          description: OK
          schema:
            $ref: '#/definitions/CheckAccessOKResponse'


definitions:      
  CheckAccess:
    properties:
      urls:
        type: string 
        example:
          - "site/index"
          - "site/create"
          - "site/update"
          - "site/delete"
          - "site/types"
          - "site/save"
    required:  
      - urls

  CheckAccessOKResponse:
    properties:
      result:
        type: object
        properties:
          urls:
            type: object
            example:
              - "site/index": true
              - "site/create": true
              - "site/update": true
              - "site/delete": true
              - "site/types": true
              - "site/save": false

Строки в примере могут быть разные, это просто блок путей. Как я могу исправить мой пример или структуру CheckAccessOKResponse, чтобы получить необходимое представление JSON? Спасибо.

1 Ответ

0 голосов
/ 20 февраля 2020

Удалить начальные тире из списка значений example. Тире указывают элементы массива, вам это не нужно.

Кроме того, result.urls в настоящее время определено как объект произвольной формы, но вы, вероятно, хотите вместо этого использовать строку в булево отображение.

  CheckAccessOKResponse:
    properties:
      result:
        type: object
        properties:
          urls:
            type: object
            additionalProperties:  # <--- this means the object is
              type: boolean        #      a string-to-boolean map
            example:
              "site/index": true   # <--- no leading dashes
              "site/create": true
              "site/update": true
              "site/delete": true
              "site/types": true
              "site/save": false
...