写点什么

SpringBoot 工程创建 Swagger 文档并自动生成调用代码

  • 2022 年 7 月 01 日
  • 本文字数:2111 字

    阅读完需:约 7 分钟

Java 后台如何更好的提供暴露接口的信息?今天教大家一种借助 Swagger 文档进行调用代码生成的方法。

首先介绍一下 Swagger 是什么? 简单的说,Swagger 可以为你的 API 自动生成文档,比如我们的工程打开之后就生成了下面的界面:

这个界面上可以查看所有的 API 路径和参数等信息,这个界面的所有数据可以用 json 导出,导出的文件就是 OpenAPI 标准。我们今天的代码生成就要基于 OpenAPI 文档来完成。

1)添加依赖

我们要为后台 Java 仓库增加 Swagger 功能,首先要添加对应的依赖,支持 Swagger 的方式有很多种,我们选用的是 knife4j

Knife4j 是为 Java MVC 框架集成 Swagger 生成 Api 文档的增强解决方案,前身是 swagger-bootstrap-ui,取名 kni4j 是希望她能像一把匕首一样小巧,轻量,并且功能强悍!


Knife4j 的前身是swagger-bootstrap-ui,为了契合微服务的架构发展,由于原来swagger-bootstrap-ui采用的是后端 Java 代码+前端 Ui 混合打包的方式,在微服务架构下显的很臃肿,因此项目正式更名为knife4j

在 pom.xml 添加依赖如下:

<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency>
复制代码

然后增加一个配置文件

package com.bajiafan.config;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Import;import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;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;import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration@EnableSwagger2@EnableKnife4j@Import(BeanValidatorPluginsConfiguration.class)public class SwaggerConfiguration { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) // 选择swagger2版本 .apiInfo(apiInfo()) //定义api文档汇总信息 .select() .apis(RequestHandlerSelectors .basePackage("com.baijiafan.controller")) // 指定生成api文档的包 .paths(PathSelectors.any()) // 指定所有路径 .build() ; }

private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("文档标题") // 文档标题 .contact(new Contact("name", "url", "mail")) //联系人信息 .description("描述") //描述 .version("0.1") //文档版本号 .termsOfServiceUrl("http://localhost:8080") //网站地址,仅在需要特别指定的时候才需要配置 .build(); }}
复制代码

详细信息可以自行修改。官方文档可见knife4j官方站点

完成后,我们就可以重启服务了,重启之后,就可以在 htttp://localhost:8080/doc.html,注意这个端口不是上面的 termsOfServiceUrl 配置的端口,是你 Java 服务的端口。

2)生成前端代码

当我们可以正常的查看到 doc.html 之后,就可以进行手工的查阅,调用等操作了。如果要分享给前端和生成前端调用代码,我们需要用到下面的工具:百家饭OpenAPI工具

3) 分享 API DOC

首先我们在百家饭OpenAPI工具注册一个免费账户,注册完成后,下载客户端并登录,然后我们就可以再开一个终端,运行下面的命令。

openapi.exe proxy localhost:8083
复制代码

这个命令会给我们一个网址,比如我这边就是

PS D:\workspace\baijiafan\core\bin\_> .\openapi.exe proxy localhost:8083connect to  rongapi.cn[44:05][INFO]    连接Domain服务器       server=rongapi.cnconfig is D:\workspace\baijiafan\core\bin\_\certs\rongapi.cn\1_8_默认客户端证书[44:05][INFO]    创建上传OpenAPI定义[44:05][INFO]    开始接收请求[44:05][INFO]    创建成功,点击可查看分享数据源  url=https://rongapi.cn/api/detail/42[44:05][INFO]    开始接收请求
复制代码

点击之后,这个页面有个二维码可以直接分享给前端,查看需要提取码,不用担心泄露问题。

4)生成前端代码

前端查看如果没有问题,就可以直接生成代码了,生成代码也需要安装百家饭OpenAPI工具,安装后直接运行

openapi.exe code -y 42 js
复制代码

执行完成后就可以在执行目录下面看见生成的代码啦

包含了所有 api 的调用文件,我们可以直接把这个目录拷贝到前端的 src 下面,就可以引用和调用相关接口了。比如

const axios = require("./axios");
axios.getDataGetauthdata();
复制代码


发布于: 刚刚阅读数: 2
用户头像

低代码API对接+隐私计算 2022.06.06 加入

通过低代码工具完成API对接,结合多方计算技术实现API的隐私计算。本号主要发布创业过程中的其他相关故事,技术探索。主要创业故事见知乎或微信"百家饭隐私计算"号 https://rongapi.cn

评论

发布
暂无评论
SpringBoot工程创建Swagger文档并自动生成调用代码_JavaScript_百家饭隐私计算平台创业者_InfoQ写作社区