一、swagger的作用

根据在代码中使用自定义的注解来生成接口文档,这个在前后端分离的项目中很重要。这样做的好处是 在开发接口时可以通过swagger 将接口文档定义好,同时也方便以后的维护。

在没有swagger之前,我们可以使用wordexcel等功能来书写接口定义文档,但又有一个弊端,即: 在接口发送改变时需要及时的同步接口文档,否则实际的接口与接口文档不相符,则接口文件就失去了作用,甚至会起到反作用。

 二、swagger的优点

号称时最流行的 API 框架
接口文档在线生成,避免同步的麻烦
可以支持在线对接口执行测试
支持多语言

三、SpringBoot集成swagger

 1.导入依赖

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId> io.springfox </groupId>
<artifactId> springfox-swagger2 </artifactId>
<version> 2.9.2 </version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId> io.springfox </groupId>
<artifactId> springfox-swagger-ui </artifactId>
<version> 2.9.2 </version>
</dependency>

2. swagger配置类

package com.zking.mini_program.config;

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

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi(){
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
                .select() .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
                .paths(PathSelectors.ant("/swaggerdemo/**"))
                .build();
    }
    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("SwaggerDemo API DOC")
                .description("SwaggerDemo API DOC")
                .version("1.0") .termsOfServiceUrl("https://www.baidu.com") .build(); }
}

3.写好后启动项目

访问路径

Swagger UI

 4.携带数据发送请求

5.响应结果

 

 四、常用注解

 

例如:在类上注解

 

 html中

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐