首页 > 解决方案 > Swagger Jakarta Maven 插件不考虑 Jackson 属性名称

问题描述

我已经实现了一个 REST-API,应该使用 Swagger 自动记录端点。虽然,我意识到生成的文档没有考虑使用 JacksonJsonProperty注释定义的属性名称。

例如对于以下课程

@Data
public class UserDto {
    @JsonProperty("EMAIL")
    private String email;

    @JsonProperty("ROLE_ID")
    private long roleId;
}

(我在这里也使用 Lombok,但我认为这不是问题)我在以下端点中使用它


    public Response updateUser(@RequestBody(content = @Content(mediaType = "application/json", schema = @Schema(implementation = UserDto.class))) UserDto userDto) {
    ...}

示例请求正文中显示了字段名称(email& roleId-> 而不是EMAILand ROLE_ID)。

Swagger 在我的pom.xml中定义如下:


    <plugin>
                    <groupId>io.swagger.core.v3</groupId>
                    <artifactId>swagger-maven-plugin-jakarta</artifactId>
                    <version>2.1.9</version>
                    <configuration>
                        <outputFileName>mdd-backend-openapi-spec</outputFileName>
                        <outputPath>target/swagger</outputPath>
                        <outputFormat>JSON</outputFormat>
                        <resourcePackages>
                            <package>ch.zh.statistik.ogd_mdd.backend</package>
                        </resourcePackages>
                        <prettyPrint>true</prettyPrint>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>compile</phase>
                            <goals>
                                <goal>resolve</goal>
                            </goals>
                        </execution>
                    </executions>
    </plugin>

...

     <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-jaxrs2-jakarta</artifactId>
                <version>2.1.9</version>
    </dependency> 

我一直在查看文档,但找不到任何可以在这里提供帮助的配置。关于我需要如何解决问题的任何想法?

标签: mavenpluginsjacksonswagger

解决方案


推荐阅读