OpenApi Codegen "Не удалось получить имя схемы:" - PullRequest
0 голосов
/ 07 мая 2020

я использую OpenAPI Generator для создания клиента на основе моего swagger.yaml у меня есть эта часть кода:

...
    responses:
        '400':
           $ref: "#/errors/400"
...
errors:
  '400':
    description: invalid request
    content:
      application/json:
        schema:
          $ref: "#/components/schemas/ErrResp"

...
components:
   schemas:
      ErrResp:
        type: object
        properties:
          error_code:
            $ref: "#/components/schemas/ErrCode"
          error_msg:
            type: string
      ErrCode:
         type: integer
         description: |
           2 - invalid request

...

Генерация выполняется с помощью этой команды:

openapi-generator generate -i myAPI.yaml -g typescript-fetch -o ./myAPI"

и есть предупреждение:

[main] WARN  o.o.codegen.utils.ModelUtils - Failed to get the schema name: #/errors/400

При этом проверка на editor.swagger.io проходит без ошибок и предупреждений - файл описан правильно. Я временно нашел следующее решение о том, как избежать этого предупреждения, но я хочу выяснить, почему оно возникает, и я хотел бы сохранить текущую структуру, чтобы избежать избыточности.

Решение: Вместо этого

responses:
   '400':
      $ref: "#/errors/400"

используется следующее, в этом случае предупреждения отсутствуют:

responses:
     '400':
        description: invalid request
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ErrResp"

1 Ответ

0 голосов
/ 07 мая 2020

Глядя на spe c я думаю, что errors не разрешено на верхнем уровне.

Он позволяет расширения, поэтому x-errors может работать.

...