【问题标题】:Swagger doesn't generate object from yaml fileSwagger 不会从 yaml 文件生成对象
【发布时间】:2021-09-05 23:38:47
【问题描述】:

我是招摇的新手。 我有一些 yaml 文件,我尝试使用 Intellij 中的 swagger 插件来生成代码。 当我生成它时,我有错误cannot find symbol。他找不到的符号是

TS29510NnrfNFManagementYamlcomponentsschemasFqdn

但这是错误的。真的是在找符号

$ref: TS29510_Nnrf_NFManagement.yaml#/components/schemas/Fqdn

Fqdn 没有生成(我认为是因为它的类型不是对象)。 但是为什么生成器找不到这个符号呢?

在 yaml 中 Fqdn 看起来像这样:

Fqdn:
  type:
    - string
    - array
  items: {}

【问题讨论】:

  • “我认为是因为它的类型不是对象”。不,这是因为type 是一个类型列表,而不是单个类型。 OpenAPI 3.1(2021 年 2 月发布的最新 OpenAPI 规范版本)支持类型列表,但 OpenAPI 3.0 和 2.0 不支持。
  • @Helen 如何检查 OpenAPI 的版本?我使用 3.0.25 版本的 swagger-codegen-maven-plugin。但我没有明确包含 OpenAPI。
  • OpenAPI 版本在您的 YAML 文件本身中指定:openapi: 3.x.x 是 OpenAPI 3,swagger: '2.0' 是 OpenAPI 2。根据您问题中的信息,您使用 OpenAPI 3.0.

标签: spring-boot yaml swagger swagger-codegen swagger-codegen-maven-plugin


【解决方案1】:

你基本上是自己回答的。对象 Fqdn 无效,因此无法生成或引用它。只需更改对象声明并享受工作代码:)

Fqdn:
  type: object
  properties:
    items:
      type: array
      items:
        type: string

【讨论】:

  • 非常感谢。帮助过我。而且我也理解了 yaml 中对象是如何定义的逻辑。
猜你喜欢
  • 2016-03-24
  • 1970-01-01
  • 1970-01-01
  • 2018-02-20
  • 2021-01-07
  • 2020-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多