Получает двойную ошибку ключа сопоставления при использовании openapi 3.0 - PullRequest
0 голосов
/ 22 декабря 2018

Я пытаюсь определить свои API, используя openapi версию 3.0.0.Я сгенерировал следующий файл YAML:

openapi: 3.0.0

info:
    title: My YAML
    description: My YAML
    version: 1.0.0

servers:
- url: http://my.server.url

paths:
     /v1/service/uri:
        post:
          summary: Getting some information.
          parameters:

          - name: Content-Type
            in: header
            description: Content type of request body.
            required: true
            style: simple
            explode: false
            schema:
              type: string

          - name: Host 
            in: header
            description: Originate host which returns the response.
            required: false
            style: simple
            explode: false
            schema:
              type: string

          requestBody:
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/MyPostRequest'
                  example:
                      my_name: "zizi"
                      my_age: 29

            required: true

          responses:
            200:
              description: OK
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/MyPostResponse'

components:
    schemas:

        MyPostRequest:
            type: object
            properties:
                my_name:
                    type: string
                my_age:
                    type: integer
                    format: int32

        MyPostResponse:
            type: object
            properties:
                status:
                    type: integer
                    format: int32

Когда я копирую / вставляю эти строки в Swagger Editor , это дает мне duplicated mapping key ошибку в строке 19;это для секции description параметра Content-Type.

Я изучил документацию openapi , но я не увидел ничего плохого в моем файле YAML.

1 Ответ

0 голосов
/ 22 декабря 2018

Я не уверен, почему вы получаете эту ошибку, я попытался выяснить, на каком языке написан Swagger, так как существует несколько синтаксических анализаторов YAML, которые, как известно, имеют проблемы, но не могли легко определить это с помощью Google илиwikipedia.

В вашем файле нет повторяющихся ключей, но он недействителен (т. е. недопустим YAML) из-за отступа ключа content (второе вхождение, то, которое находится под * 1004)* → /v1/service/uripostresponses200), который должен быть выровнен по description, так как этот ключ не может иметь узел значения, который является как скалярным (OK), так и отображениемузел content: ....

...