Получает двойную ошибку ключа сопоставления при использовании 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/uri
→ post
→ responses
→ 200
), который должен быть приведен в соответствие с description
так как этот ключ не может иметь значение узла, который является одновременно скалярным (OK
) а также узел отображения content: ....