SpringBoot整合Swagger与统一返回结果问题

11 篇文章 0 订阅
2 篇文章 0 订阅

        写此博客,以此留念,解决了因使用统一返回结果对象导致,swagger-ui看不到返回对象属性注释的原因。(没有使用泛型导致)

Springboot统一结果返回对象

@Data
@ApiModel("统一API响应结果封装") 
public class DataResult<T> {

    /**操作结果 0为成功*/
    @ApiModelProperty("操作结果 0为成功")
    private int status = 200;
    /**错误code*/
    @ApiModelProperty("错误code")
    private String statusCode = "0";
    /**操作结果描述信息*/
    @ApiModelProperty("操作结果描述信息")
    private String statusInfo = "SUCCESS";
    @ApiModelProperty("list时,总数量")
    private Integer totalCount = 0;
    @ApiModelProperty("结果对象/集合")
    private T data;

    public DataResult(){
        this(200,"0","SUCCESS",0,null);
    }
    public DataResult(T data){
        this(200,"0","SUCCESS",0,data);
    }
    public DataResult(String statusInfo){
        this(200,"0",statusInfo,0,null);
    }
    public DataResult(String statusInfo,T data){
        this(200,"0",statusInfo,0,data);
    }
    public DataResult(int status,String statusCode,String statusInfo){
        this.status = status;
        this.statusCode = statusCode;
        this.statusInfo = statusInfo;
    }

    public DataResult(int status,String statusCode,String statusInfo,Integer totalCount,T data){
        this.status = status;
        this.statusCode = statusCode;
        this.statusInfo = statusInfo;
        this.totalCount = totalCount;
        this.data = data;
    }

    public static <T> DataResult<T> success(T data){
        return new DataResult<T>(data);
    }

    public static <T> DataResult<T> success(String statusInfo){
        return new DataResult<T>(statusInfo);
    }
    public static <T> DataResult<T> success(){
        return new DataResult<T>();
    }

    public static <T> DataResult<T> fail(String statusInfo){
        DataResult<T> result = new DataResult<>();
        result.setStatus(new Integer(ApiErrorCode.FAIL.getCode()));
        result.setStatusCode(ApiErrorCode.FAIL.getDesc());
        result.setStatusInfo(statusInfo);
        return result;
    }

    public static <T> DataResult<T> fail(String statusCode,String statusInfo){
        DataResult<T> result = new DataResult<>();
        result.setStatus(new Integer(ApiErrorCode.FAIL.getCode()));
        result.setStatusCode(statusCode);
        result.setStatusInfo(statusInfo);
        return result;
    }
    public static <T> DataResult<T> result(int status,String statusCode,String statusInfo,Integer totalCount,T data){
        return new DataResult<T>(status,statusCode,statusInfo,totalCount,data);
    }

    public static <T> DataResult<T> result(int status,String statusCode,String statusInfo){
        return new DataResult<T>(status,statusCode,statusInfo);
    }

泛型对象

@Data
@ApiModel("适老化摸排详情")
public class Xxx{
    /** 主键id */
    @ApiModelProperty("主键id")
    private Integer id;
    /** 姓名 */
    @ApiModelProperty("姓名")
    private String xm;
}

Swagger常用注解

@Api() :用于类;表示标识这个类(往往是controller)是swagger的资源,tags–表示说明
    @Api(tags="用户模块")
    public class UserController { }

@ApiOperation:用于对一个操作或HTTP方法进行描述
    @ApiOperation(notes = "查询用户",value = "查询用户")
    public User getUser(){}

@ApiParam:用于请求方法上,定义api参数的注解
    public User getUser(@ApiParam("用户id")Integer id){}

@ApiModel():用于类 ;表示对类进行说明,用于参数用实体类接收 
    @ApiModel("用户对象user")
    public class User{}

@ApiModelProperty:用来描述一个Model的属性
    @ApiModelProperty(value = "提示信息")
	private String message;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现springboot整合swagger2 3.0.0版本,你需要按照以下步骤操作: 1. 创建一个maven项目并引入spring-boot-starter-web和springfox-boot-starter依赖。在pom.xml文件中添加以下代码: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- <version>2.5.6</version> --> <!-- <version>2.6.3</version> --> <!-- <version>2.6.5</version> --> <version>2.7.3</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.26</version> </dependency> ``` 2. 在application.yml配置文件中添加以下内容: ```yaml spring: mvc: pathmatch: matching-strategy: ant_path_matcher ``` 3. 创建启动类,并在其中添加`@EnableSwagger2`注解。例如: ```java @SpringBootApplication @EnableSwagger2 public class YourApplication { public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); } } ``` 这样就完成了springboot整合swagger2 3.0.0版本的配置。你可以根据需要在项目中编写相应的接口文档注解以及其他相关配置。如果需要更详细的操作步骤和示例代码,你可以参考中提供的链接。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Springboot整合Swagger2(3.0.0版本)](https://blog.csdn.net/mo_sss/article/details/130820204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Springboot整合Swagger UI 3.0.0 版本](https://blog.csdn.net/qq_42102911/article/details/126410050)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值