SpringBoot集成swagger生成在线接口文档

SpringBoot集成swagger生成在线接口文档

  1. 集成maven依赖
<dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.7.0</version>
</dependency>
<dependency>
			    <groupId>io.springfox</groupId>
			    <artifactId>springfox-swagger-ui</artifactId>
			    <version>2.7.0</version>
</dependency>
  1. 创建配置bean

在与启动类同级的位置创建配置类

  1. 配置类的相关配置
@Configuration
@EnableSwagger2
@ConditionalOnExpression("${swagger.enable}") //开启访问接口文档的权限
public class Swagger2 {

    @Bean
    public Docket userRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("用户模块")  //模块名称
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.ulabor.laboratory.controller.usermanage"))  //扫描的控制器路径
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("xxx项目开发接口文档")    //接口文档标题
                .description("此文档仅供开发技术组领导、开发人员使用")   //描述
                .termsOfServiceUrl("http://www.xxx.com/")   //相关的网址
                .contact(new Contact("后端开发","http://www.xxx.com/","8xxxxx67@qq.com"))    //作者  邮箱等
                .version("1.0")  //版本号
                .build();
    }
 }

接口访问的权限可以在application.properties配置文件中配置,上线后可以改为 false

  1. controller层先关的注解使用
@Controller
@RequestMapping("/app")
@Api(tags = "用户登陆相关Api")
public class UserController {
       。。。。省略
}
在controller层加上@Api注解,tags是对控制器命名,description可以对该控制器进行描述
/**
     * 用户手机号密码登陆接口
     *
     * @return 结果json
     * @author
     */
    @ApiOperation(value = "用户手机号密码登陆接口",response = User.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "strRegionNumber",paramType = "query",value = "区号",required = true,dataType = "String"),
            @ApiImplicitParam(name = "strUserPhone",paramType = "query",value = "手机号码",required = true,dataType = "String"),
            @ApiImplicitParam(name = "strPassword",paramType = "query",value = "密码",required = true,dataType = "String")
    })
    @RequestMapping(path = "/phone/password/login", method = RequestMethod.POST,produces = "application/json")
    @ResponseBody
    public String phonePasswordLogin(HttpServletRequest request) {
        。。。。此处省略n行代码
    }

Swagger使用的注解及其说明:

@Api:用在类上,说明该类的作用。

@ApiOperation:注解来给API增加方法说明。

@ApiImplicitParams : 用在方法上包含一组参数说明。

@ApiImplicitParam:用来注解来给方法入参增加说明。
参数说明:
paramType:指定参数放在哪个地方

       header:请求参数放置于Request Header,使用@RequestHeader获取

       query:请求参数放置于请求地址,使用@RequestParam获取

       path:(用于restful接口)-->请求参数的获取:@PathVariable

       body:(不常用)请求体

       form(不常用)表单

name:参数名

dataType:参数类型

required:参数是否必须传

 true | false

value:说明参数的意思

defaultValue:参数的默认值

@ApiResponses:用于表示一组响应

@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息

  code:数字,例如400

  message:信息,例如"请求参数没填好"

  response:抛出异常的类   

@ApiModel:描述一个Model的信息(一般用在请求参数无法使用@ApiImplicitParam注解进行描述的时候)

  @ApiModelProperty:描述一个model的属性
  1. 启动Spring Boot主程序,访问:http://localhost:8080/swagger-ui.html
    出现页面如下
    在这里插入图片描述
    在这里插入图片描述
    然后可以对接口进行测试。修改后重新启动程序,就可以进行在再次测试,方便前后端实时调试接口。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值