10分钟学会Swagger

Posted Harris-H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10分钟学会Swagger相关的知识,希望对你有一定的参考价值。

10分钟学会Swagger

0.前置知识

oas:OpenAPI Specification 即(OpenAPI 规范)

官方文档:https://swagger.io/

1.导入依赖

        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

2.在启动类上添加注解

@EnableOpenApi

@SpringBootApplication
@EnableOpenApi
public class SwaggerApplication {

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

}

3.关于Docket

它是一个swagger的一个插件类

自定义swagger

// 构造方法,需要传入一个documentationType类
public Docket(DocumentationType documentationType) {
        this.apiInfo = ApiInfo.DEFAULT;
        this.groupName = "default";
        this.enabled = true;
        this.genericsNamingStrategy = new DefaultGenericTypeNamingStrategy();
        this.applyDefaultResponseMessages = true;
        this.host = "";
        this.pathMapping = Optional.empty();
        this.apiSelector = ApiSelector.DEFAULT;
        this.enableUrlTemplating = false;
        this.vendorExtensions = new ArrayList();
        this.globalRequestParameters = new ArrayList();
        this.documentationType = documentationType;
    }

在这里插入图片描述

我们可以调用apiInfo() 方法自定信息。

contact 就是简单的一个简单的类(表示作者联系方式的) ,默认为空。

三个属性:name,url,emai

title 页面的标题(string 类型)

这一个板块是apiInfo

在这里插入图片描述

ApiInfo 可以通过ApiInfoBuilder 这个类的build()方法来构造

	@Bean
    public Docket docket(){
        return new Docket(DocumentationType.OAS_30).apiInfo(
                new ApiInfoBuilder().contact(new Contact("Herio","www.he-hao.top","1479898695@qq.com"))
                .title("Herio的OpenApi")
                .version("v1.0")
                .description("这是一段介绍")
                .build()
        );
    }

在这里插入图片描述

值得注意的是默认的contact的url 你在页面上点击后跳转会自动加上前缀:

http://localhost:8080/swagger-ui/ ,这个应该可以手动修改。

4.接口添加注释

@Api(tags="Hello控制器")
public class HelloController {

    @ApiOperation(value="测试请求",notes="备注的方法")
    @GetMapping("/hello")
    public String hello(){
        return "hello";
    }
}

在这里插入图片描述

5.只扫描某一类或某一个包下的接口

@Bean
//只扫描以/hello 开头的接口
    public Docket docket1(){
        return new Docket(DocumentationType.OAS_30)
        .groupName("group2").select().paths(PathSelectors.ant("/hello/**")).build();
    }

//只扫描com.example.swagger.controller 包下的接口
@Bean
    public Docket docket2(){
        return new Docket(DocumentationType.OAS_30).groupName("group3")
        .select().apis(RequestHandlerSelectors.basePackage("com.example.swagger.controller")).build();
    }

6. 使用第三方UI

在这里插入图片描述


7.学习文章

传送门

以上是关于10分钟学会Swagger的主要内容,如果未能解决你的问题,请参考以下文章

10分钟学会Python函数基础知识

10分钟学会 Python 函数基础知识

10分钟学会 OpenCV CUDA编程

10分钟学会ES7+ES8&重复性管理(抽象的重要性)&代码质量管控的四个阶段--20170910冰鉴周指南

译10分钟学会Pandas

学会了Swagger,再也不用PostMan做接口测试了