Spring Boot(9)之 Swagger 接口文档生成器

1、添加依赖

spring4all工具源码

    <dependency>
        <groupId>com.spring4all</groupId>
        <artifactId>swagger-spring-boot-starter</artifactId>
        <version>1.9.1.RELEASE</version>
    </dependency>

2、入口添加注释

import com.spring4all.swagger.EnableSwagger2Doc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@EnableSwagger2Doc // 启动文档
@SpringBootApplication
public class OsFastStableApplication {

	public static void main(String[] args) {
		SpringApplication.run(OsFastStableApplication.class, args);
	}

}

3、常用注解

3.1、@Api():类

用在请求的类上,表示对类的说明,也代表了这个类是swagger2的资源

参数说明备注
tags说明该类的作用(标签),参数是个数组,可以填多个
value该参数没什么意义,在UI界面上不显示,所以不用配置
description类的描述

3.2、@ApiOperation():方法

用于方法,表示一个http请求访问该方法的操作

参数说明备注
value方法的用途和作用
notes方法的注意事项和备注
tags说明该方法的作用,参数是个数组,可以填多个格式:tags={“作用1”,“作用2”}

注意:在这里建议不使用 tags 这个参数,会使界面看上去有点乱,前两个常用

3.3、@ApiModel():实体类

用于响应实体类上,用于说明实体作用

参数说明备注
description描述实体的作用

3.4、@ApiModelProperty():实体类属性

用在属性上,描述实体类的属性

参数说明备注
name参数的变量名name=“name”
value描述参数的意义value=“用户名”
required参数是否必选required=true

3.5、@ApiImplicitParams():请求方法

用在请求的方法上,包含多@ApiImplicitParam

@ApiImplicitParams(value = {
            @ApiImplicitParam( ... ),
            @ApiImplicitParam( ... )
})

3.6、@ApiImplicitParam():请求方法

用于方法,表示单独的请求参数

参数说明备注
name参数的变量名
value描述参数的意义
dataType数据类型
paramType表示参数放在哪里· header 请求参数的获取:@RequestHeader
· query 请求参数的获取:@RequestParam
· path(用于restful接口) 请求参数的获取:@PathVariable
· body(不常用)
· form(不常用)
defaultValue参数的默认值
required表示参数是否必须传required=true

3.7、@ApiParam():方法参数

用于方法,参数,字段说明 表示对参数的要求和说明

  • 注意:@ApiParam 与 @ApiImplicitParam 作用相同,但是 @ApiImplicitParam 的适用范围更广
参数说明备注
name参数的变量名name=“name”
value描述参数的意义value=“用户名”
defaultValue参数默认值
required参数是否必选默认为false
    @ApiOperation("用户列表")
    @GetMapping("/users")
    public List<User> list(@ApiParam("查看第几页") @RequestParam int pageIndex,
                            @ApiParam("每页多少条") @RequestParam int pageSize) {
        List<User> result = new ArrayList<>();
        result.add(new User("aaa", 50, "北京", "aaa@ccc.com"));
        result.add(new User("bbb", 21, "广州", "aaa@ddd.com"));
        return result;
    }

3.8、@ApiResponses():请求方法

用于请求的方法上,根据响应码表示不同响应

  • 一个@ApiResponses包含多个@ApiResponse
@ApiResponses(value = {
        @ApiResponse(code = 200, message = "Success", response = Order.class),
        @ApiResponse(code = 405, message = "Error", response = Order.class)
})

3.9、@ApiResponse():请求方法

用在请求的方法上,表示不同的响应

参数说明备注
code表示响应码(int型)可自定义
message状态码对应的响应信息
response返回响应Class类型
...其他参数不常用可以自行查看源码

3.10、@ApiIgnore():类、方法

用于类或者方法上,不被显示在页面上

3.11、@Profile({“dev”, “test”}):配置类

用于配置类上,表示只对开发和测试环境有用

4、配置详情

4.1、其他

命令说明案例
spring.application.namespring 应用程序名称swagger-demo
logging.level.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMappingtrace

4.2、Swagger Enable/Disable

命令说明案例
springfox.documentation.enabledTRUE

4.3、Swagger Switch

命令说明案例
swagger.enabled是否启用swagger,默认:true

4.4、ApiInfo

命令说明案例
swagger.title标题spring-boot-starter-swagger
swagger.description描述Starter for swagger 2.x
swagger.version版本1.1.0.RELEASE
swagger.license许可证Apache License, Version 2.0
swagger.licenseUrl许可证URLhttps://www.apache.org/licenses/LICENSE-2.0.html
swagger.termsOfServiceUrl服务条款URLhttps://github.com/dyc87112/spring-boot-starter-swagger
swagger.contact.name维护人didi
swagger.contact.url维护人URLhttp://blog.didispace.com
swagger.contact.email维护人emaildyc87112@qq.com
swagger.host文档的host信息,默认:空localhost:8081
swagger.base-packageswagger扫描的基础包,默认:全扫描com.didispace
swagger.base-path需要处理的基础URL规则,默认:/**/**
swagger.exclude-path需要排除的URL规则,默认:空/error, /ops/**

4.5、忽略的参数配置

命令说明案例
swagger.ignored-parameter-types[0]com.didispace.demo.User
swagger.ignored-parameter-types[1]com.didispace.demo.Product

4.6、全局请求参数

命令说明案例
swagger.global-operation-parameters[0].name参数名access_token
swagger.global-operation-parameters[0].description描述信息user access token
swagger.global-operation-parameters[0].modelRef指定参数类型string
swagger.global-operation-parameters[0].parameterType指定参数存放位置,可选header,query,path,body.formheader
swagger.global-operation-parameters[0].required指定参数是否必传,true,falseTRUE

5、取消使用默认预定义的响应消息,并使用自定义响应消息

命令说明案例
swagger.apply-default-response-messagesFALSE
swagger.global-response-message.get[0].code401
swagger.global-response-message.get[0].message401get
swagger.global-response-message.get[1].code500
swagger.global-response-message.get[1].message500get
swagger.global-response-message.get[1].modelRefERROR
swagger.global-response-message.post[0].code500
swagger.global-response-message.post[0].message500post
swagger.global-response-message.post[0].modelRefERROR

5.1、UI功能配置

命令说明案例
swagger.ui-config.json-editorjson编辑器FALSE
swagger.ui-config.show-request-headers显示请求头TRUE
swagger.ui-config.request-timeout页面调试请求的超时时间5000
swagger.ui-config.submit-methods调试按钮的控制(try it out),该参数值为提供调试按钮的HTTP请求类型,多个用,分割。get,delete

5.2、分组配置

命令说明案例
swagger.docket.<name>.title标题
swagger.docket.<name>.description描述
swagger.docket.<name>.version版本
swagger.docket.<name>.license许可证
swagger.docket.<name>.licenseUrl许可证URL
swagger.docket.<name>.termsOfServiceUrl服务条款URL
swagger.docket.<name>.contact.name维护人
swagger.docket.<name>.contact.url维护人URL
swagger.docket.<name>.contact.email维护人email
swagger.docket.<name>.base-packageswagger扫描的基础包,默认:全扫描
swagger.docket.<name>.base-path需要处理的基础URL规则,默认:/**
swagger.docket.<name>.exclude-path需要排除的URL规则,默认:空
swagger.docket.<name>.name参数名
swagger.docket.<name>.modelRef指定参数类型
swagger.docket.<name>.parameterType指定参数存放位置,可选header,query,path,body.form
swagger.docket.<name>.requiredTRUE
swagger.docket.<name>.globalOperationParameters[0].name参数名
swagger.docket.<name>.globalOperationParameters[0].description描述信息
swagger.docket.<name>.globalOperationParameters[0].modelRef指定参数存放位置,可选header,query,path,body.form
swagger.docket.<name>.globalOperationParameters[0].parameterType指定参数是否必传,true,false

6、Swagger UI 地址

http://localhost:8081/swagger-ui.html#/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值