Swagger的使用

Created
Nov 9, 2021 01:24 PM
Tags

什么是 Swagger

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务的接口文档。
简单来说,Swagger是用来帮你生成接口文档的,你只需要写几个简单的配置,注解。

怎么用 Swagger

引入 maven 依赖

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>
这里引入了2个依赖,第一个springfox-swagger2 是 Swagger 的核心库,第二个 springfox-swagger-ui 是 Swagger UI 界面的核心库,这两个有什么区别呢?
其实光用第一个就已经可以帮你生成api文档了,不过整篇文档都是json格式的数据,不适合人类阅读,因此一般我们需要配合第二个UI库来生成一个网页。

配置Java Bean

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }

    public ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("dst测试文档")
                .description("说明")
                .termsOfServiceUrl("htpp://localhost:8080/hello")
                .version("1.0")
                .build();
    }
}
配置完成后启动项目,在游览器输入 http://localhost:8080/swagger-ui.html#/ 访问
8080是你的项目端口
常用的注解如下:
  • @Api()用于类名
  • @ApiOperation()用于方法名
  • @ApiParam()用于参数说明
  • @ApiModel()用于实体类
  • @ApiModelProperty用于实体类属性