Согласно документации swagger , у меня должны быть общие параметры, общие для всех операций. Проблема в том, что при локальном запуске codegen у сгенерированного кода нет ни одного из параметров common path . Приведенный ниже yaml
создает код для любого языка (я пробовал два).
Что очень сбивает с толку, так это то, что если я использую именно этот yaml
в https://editor.swagger.io/, сгенерированный код имеет ли параметры пути. Я запускал это для двух разных языков, машинописный текст:
And C#:
Left is the code generated in editor.swagger.io and right is my generated code by running codegen locally.
In both cases, the .swagger-codegen\VERSION
the file is 3.0.20
which is the one I'm using but the code generated by https://editor.swagger.io/ имеет пути параметров.
Этот простой файл yaml воспроизводит проблему:
openapi: 3.0.2
info:
title: title
version: 1.0.0
paths:
'/instances/{id}':
summary: Manipulate a particular instance
get:
responses:
'200':
description: Ok
content:
text/plain:
schema:
type: string
example: pong
summary: Fetches an instance
parameters:
- in: path
name: id
schema:
type: integer
required: true
components:
securitySchemes:
bearerAuth:
scheme: bearer
bearerFormat: JWT
type: http
Командная строка, используемая для генерации:
java ^
-classpath bin/swagger-codegen-cli.jar ^
-DdebugOperations ^
io.swagger.codegen.v3.Codegen ^
generate ^
-i enterpos-api.yaml ^
-l typescript-angular ^
-o generated-code/typescript-angular-builtin
И это сгенерировало этот вывод: https://gist.github.com/alanboy/45ce792255e079dd0de4f70449ebf455. Я чувствую, что это может быть неправильное использование или что-то не так с моим yaml, но я не могу понять, что.