3

TLDR:问题似乎在于,当它是枚举时,swagger 字段应该是强制性的(与 java 枚举字段不同)。我想知道是否有办法让它成为可选的

我正在使用 swagger 从 yaml 文件中生成一些集成 api

<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.3.1</version>

(默认情况下,插件中使用 Gson 实现来处理 json)

在一个 yaml 文件中,我有一个请求描述,其中包含一个这样描述的字段

...
definitions:
  MyRequest:
    type: object
    required:
      - field1
      - field2
    properties:
      myEnumField:
        type: string
        enum:
          - A
          - B
          - C

或例如查看文档

为此,swagger 生成公共静态类适配器(默认情况下,插件中使用 Gson 实现来处理 json,因此此适配器扩展了 com.google.gson.TypeAdapter)。并且此实现禁止将此字段留空(否则在运行时 NPE 失败)。

我想允许所有 yaml 文件的可选枚举字段,或者至少允许指定的枚举字段。

提前致谢

4

0 回答 0