You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已为Model添加@ApiModelProperty,但Swagger文档未显示字段,如何解决?

解决Swagger文档不显示DictServiceGroupView字段的问题

以下是几个关键修复步骤:

1. 调整字段访问权限或确保Getter可见性

Swagger默认只会识别公共(public)字段或公共Getter方法。你的代码中字段是包私有(无访问修饰符),即使加了@Getter,若Lombok生成的Getter权限不匹配,Swagger也无法扫描到。

推荐修改方案:将字段改为private,依赖Lombok自动生成public级别的Getter/Setter(@Getter/@Setter注解默认生成public方法),修改后的代码如下:

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.util.UUID;

@ApiModel(description = "Краткое описание сервиса для его выбора в dropdown")
@Getter
@Setter
public class DictServiceGroupView {
    @ApiModelProperty(notes = "Название сервиса")
    private String name;
    @ApiModelProperty(notes = "Идентификатор сервиса")
    private UUID id;
}

若不想修改字段修饰符,可显式指定Lombok生成public级别的Getter:

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;

import java.util.UUID;

@ApiModel(description = "Краткое описание сервиса для его выбора в dropdown")
@Getter(AccessLevel.PUBLIC)
@Setter(AccessLevel.PUBLIC)
public class DictServiceGroupView {
    @ApiModelProperty(notes = "Название сервиса")
    String name;
    @ApiModelProperty(notes = "Идентификатор сервиса")
    UUID id;
}

2. 确认Lombok注解生效

  • 检查项目依赖中是否正确引入Lombok,Maven依赖示例:
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
    </dependency>
    
  • 确保IDE已启用注解处理器(如IntelliJ IDEA需在Settings > Build, Execution, Deployment > Compiler > Annotation Processors中勾选Enable annotation processing)。

3. 检查Swagger配置扫描范围

确保Swagger配置类中,Docket实例已指定扫描包含DictServiceGroupView的包路径,示例:

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("你的模型所在包路径"))
                .paths(PathSelectors.any())
                .build();
    }
}

4. 验证Swagger版本兼容性

若使用Swagger 1.x版本,对Lombok的支持有限,建议升级到Swagger 2.x版本,确保与Lombok版本兼容。

内容的提问来源于stack exchange,提问作者Eljah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 04:32:49