前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动生成API工具——Swagger3

自动生成API工具——Swagger3

原创
作者头像
Java学术趴
发布2022-06-20 00:13:09
6770
发布2022-06-20 00:13:09
举报
文章被收录于专栏:Java全栈·Java全栈·

👨‍🎓作者:Java学术趴 🏦仓库:GithubGitee ✏️博客:CSDN掘金InfoQ云+社区 💌公众号:Java学术趴 🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。 🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。

☠️每日毒鸡汤:这个社会是存在不公平的,不要抱怨,因为没有用!人总是在反省中进步的!

👋大家好!我是你们的老朋友Java学术趴。今天给大家分享一波自动生成API文档的工具,就是Swagger,人们亲切的叫他丝袜哥。哈哈哈哈,开玩笑的啦,小编给大家提供了一个工具类,这个工具类可以直接复制粘贴进行使用哦

1. Swagger3简介

Swagger(丝袜哥)是一个简单但功能强大的API表达工具。它具有地球上最大的API工具生态系统,数以千万的开发人员使用,几乎所有的现代编程语言,都支持和使用Swagger。使用Swagger生成API,我们可以得到交互式文档,自动生成代码的SDK以及API发新特性。

前后端分离项目,接口文档的存在是十分重要的。与手动编写的接口不同,swagger是一个自动生成接口文档的工具,在需求不断变更的环境下,手动编写文档的效率太低。与swagger2相比新版的swagger3配置更少,使用更方便。

2. Swagger的作用

  • 将项目中所有的接口展现在页面上,这样后端程序员就不需要专门为前端使用者编写专门的接口文档。
  • 当接口更新之后,只需要修改代码中的Swagger描述就可以实现实时生成新的接口文档,从而规避了接口文档老旧不能使用的问题
  • 通过Swagger页面,我们可以直接进行接口调用,降低了项目开发阶段的调式成本。

3. Swagger的实际开发配置文件(直接复制粘贴使用即可)

Swagger3配置类文件:Swagger3Config

package cn.gyyx.config;
​
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
​
/**
 * @description:
 * @author: Pengdehua
 * @time: 2021/8/10 14:06
 */
@Configuration
public class Swagger3Config {
​
    /**
     * 配置Swagger3。这些信息都会显示在这个Swagger3的前端页面上
     * @return
     */
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.OAS_30)  // 指定Swagger版本为3
                // 该Swagger3的信息,调用的是下边定义的信息方法
                .apiInfo(apiInfo())
                // 指定负责该 Swagger3 的小组。每个小组都需要有自己的  createRestApi() 以及 apiInfo(),所以说当有多个组是会有很多套
                .groupName("Java一组")
                // 开发环境用到Swagger,正式环境一般进行关闭 true/false(开关)
                // .enable(false)
                // 接下来是过滤(指定哪些方法需要存在接口文档信息):过滤之前必须给定 .select()
                .select()
                // 根据带有注解的方法过滤。存在@ApiOperation注解的方法保存接口描述信息。参数是一个类名,这里使用类自带的class属性获取类名
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                // 根据路径信息过滤。any()代表所有的路径都保存接口信息。还可以使用 PathSelectors.ant("路径信息") 指定特定的接口
                .paths(PathSelectors.any())
                // 过滤之后最后必须存在一个 build(),表示构建完成
                .build();
    }
​
​
    /**
     * 如果不配置会使用源码中默认的,一般我们都在这里进行覆盖重写
     * 配置该Swagger3的Api信息
     * @return
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                // 该Swagger3的Api文档题目
                .title("第四版监控")
                // 该Swagger3的Api文档描述
                .description("第四版监控 - 接口管理")
                // 该Swagger3的Api文档联系方式(固定格式)
                .contact(new Contact("彭德华", "", "pengdehua@gyyx.cn"))
                // Swagger3的版本
                .version("1.0")
                // 最后需要使用build结尾,代表构建完成
                .build();
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Swagger3简介
  • 2. Swagger的作用
  • 3. Swagger的实际开发配置文件(直接复制粘贴使用即可)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档