Spring boot OpenAPI3默认数组生成

Spring boot OpenAPI3默认数组生成,spring-boot,swagger-2.0,openapi-generator,Spring Boot,Swagger 2.0,Openapi Generator,我的API定义如下: /api: get: ... parameters: - name: "tags" in: "query" description: "some description" required: false schema: type: "array" items: type: "string" .... 我们使用openapi生成器mav

我的API定义如下:

/api:
  get:
  ...
  parameters:
     - name: "tags"
       in: "query"
       description: "some description"
       required: false
       schema:
         type: "array"
         items:
           type: "string"
  ....
我们使用
openapi生成器maven-plugin:3.3.5
生成代码

生成的API参数:
@ApiParam(value=“description”,defaultValue=“new ArrayList()”)

控制器接收的实际参数不是空的,并且包含literal
new ArrayList()
作为第一个元素:

String first = tags.get(0);
assert "new ArrayList<>()".equals(first) //true
String first=tags.get(0);
断言“new ArrayList()”.equals(first)//true
我找不到任何控制此行为的参数值(如defaultValue)。 如何使参数为null或至少为空列表

在Spring boot应用程序中使用sagger:


伊奥·斯普林福克斯
springfox-Swagger 2
${io.springfox.swagger.version}
openapitools生成器配置选项


爪哇8
杰克逊
真的
真的
真的

较新的生成器版本已修复此问题:

<plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <version>4.3.0</version>
    ...
</plugin>

org.openapitools
openapi生成器maven插件
4.3.0
...
另外,添加Jackson-databind-nullable

 <dependency>
  <groupId>org.openapitools</groupId>
  <artifactId>jackson-databind-nullable</artifactId>
  <version>0.2.1</version>
</dependency>

org.openapitools
jackson数据绑定可为空
0.2.1

较新的生成器版本已修复此问题:

<plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <version>4.3.0</version>
    ...
</plugin>

org.openapitools
openapi生成器maven插件
4.3.0
...
另外,添加Jackson-databind-nullable

 <dependency>
  <groupId>org.openapitools</groupId>
  <artifactId>jackson-databind-nullable</artifactId>
  <version>0.2.1</version>
</dependency>

org.openapitools
jackson数据绑定可为空
0.2.1

此处存在相同的问题,但无法使其正常工作。 但您可以添加一些验证来查看列表是否至少包含一个元素,例如

/api:
  get:
  ...
  parameters:
   - name: "tags"
     in: "query"
     description: "some description"
     required: false
     schema:
       type: "array"
       minItems: 1
       items:
         type: "string"
  ....

这里有同样的问题,但无法使其工作。 但您可以添加一些验证来查看列表是否至少包含一个元素,例如

/api:
  get:
  ...
  parameters:
   - name: "tags"
     in: "query"
     description: "some description"
     required: false
     schema:
       type: "array"
       minItems: 1
       items:
         type: "string"
  ....