当前位置: 首页 > 工具软件 > swagger-diff > 使用案例 >

基于SpringBoot的Swagger使用

祖迪
2023-12-01

Swagger使用:

1. pom.xml文件中引用:

<!--swagger2所需要的jar  -->
<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger2</artifactId>
   <version>2.4.0</version>
</dependency>
<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger-ui</artifactId>
   <version>2.4.0</version>
</dependency>

 

2. 新建启动类(SpringBoot为例)

package com.pk.wxApp;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * Swagger
 *
 *
@author pk
 *
 */

@Configuration
@EnableSwagger2
public class Swagger2 {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.pk.wxApp.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("微信小程序 API")
                .description("主要提供基于http的API给微信小程序系统的前端页面调用以获取或更新数据。")
                .contact(new Contact("pk","www.pk.com","123456789@qq.com"))
                .version("1.0")
                .build();
    }

}

 

 

3. 在Controller类中添加注解

@Api()

用于类:表示标识这个类是swagger的资源

tags–表示说明

value–也是说明,可以使用tags替代

例如:

@Api(value = "user",tags={"用户操作"})

 

@ApiOperation() 用于方法:表示一个http请求的操作

value用于方法描述

notes用于提示内容

tags可以重新分组(视情况而用)

 

@ApiParam() 用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等)

name–参数名

value–参数说明

required–是否必填

例如:

@ApiOperation(value="登录接口", notes="登录接口")
@RequestMapping(value = "/test",method = {RequestMethod.POST})
@ResponseBody
public BaseResponse<String> test(@ApiParam(name = "userName",value = "用户名",required = true)@RequestParam(value = "userName",required = true)String userName,
      @ApiParam(name = "passWord",value = "密码",required = true)@RequestParam("passWord")String passWord,
      HttpServletRequest request, HttpServletResponse response){
   BaseResponse<String> resp = new BaseResponse<>();
   logger.info("用户名:"+userName+"  密码:"+passWord);
   resp.setData("{'userName':"+userName+",'passWord':"+passWord+"}");
   return resp;
}

 

 

4. 请求的实体或返回的实体类

@ApiModel()用于类 :表示对类进行说明,用于参数用实体类接收

value–表示对象名

description–描述

都可省略

@ApiModelProperty()用于方法,字段: 表示对model属性的说明或者数据操作更改

value–字段说明

name–重写属性名字

dataType–重写属性类型

required–是否必填

example–举例说明

hidden–隐藏

 

例如:

@ApiModel(value = "用户查询返回信息")
public class UserInfoResp {
    @ApiModelProperty(value = "用户名")
    private String userName;

    @ApiModelProperty(value = "性别")
    private String sex;

 

 

 

SpringBoot打开页面:

http://127.0.0.1:8080/swagger-ui.html

 

 

 

 类似资料: