我正在使用 swagger 来定义与我的网络服务器的合同。在 swagger 文件中,我定义了 REST 端点和请求/响应对象。
我想添加注释@JsonInclude(Include.NON_NULL)
到我的招摇班级的一个领域。 swagger 类的定义如下:
MyObject:
discriminator: valueType
required:
- name
- description
properties:
name:
type: string
description:
type: string
value:
type: string
dbName:
type: string
When dbName
为空,我不想返回它(不序列化它),所以我会得到如下所示的响应:
{
"name": "some_name",
"description": "my description",
"value": "some value"
}
如果它是我创建的 java 类,那么将其定义为非常容易:
public class MyObject {
public String name;
public String description;
public String value;
@JsonInclude(Include.NON_NULL)
public String dbName;
}
但因为这是一个自动生成的类,我不确定如何实现它。
如果您使用 swagger-codegen 插件,那么在 Maven 配置中您需要添加notNullJackson注释CLI 选项并检查您是否使用最新的插件版本,例如:
<build>
<plugins>
<plugin>
<groupId>io.swagger.codegen.v3</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>3.0.32</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/petstore.yaml</inputSpec>
<language>java</language>
<library>resttemplate</library>
<apiPackage>lt.codex.json.api</apiPackage>
<modelPackage>lt.codex.json.model</modelPackage>
<invokerPackage>lt.codex.json.handler</invokerPackage>
<generateApiTests>false</generateApiTests>
<generateApiDocumentation>false</generateApiDocumentation>
<generateModelTests>false</generateModelTests>
<generateModelDocumentation>false</generateModelDocumentation>
<generateSupportingFiles>true</generateSupportingFiles>
<configOptions>
<interfaceOnly>true</interfaceOnly>
<dateLibrary>java8</dateLibrary>
<notNullJacksonAnnotation>true</notNullJacksonAnnotation>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)