Получает двойную ошибку ключа сопоставления при использовании openapi 3.0

Я пытаюсь определить свои 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, он дает мне duplicated mapping key ошибка на линии 19; это для раздела description параметра Content-Type,

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

1 ответ

Решение

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

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

Другие вопросы по тегам