代码生成框架SwaggerCodeGen
代码生成框架 Swagger Code Gen
简介
Swagger Codegen can simplify your buildx process by generating server stubs and client SDKs for any API, defined with the OpenAPI (formerly known as Swagger) specification, so your team can focus better on your API’s implementation and adoption.
以上是 SwaggerCodeGen 在官网的介绍与说明。SwaggerCodeGen 是接口管理工具 Swagger 的一个功能模块,其主要功能为:自动构建服务端代码和客户端代码的工具,可以将其理解为一种代码生成框架。
相比于 Swagger Editor 中提供的 Generate 功能,其灵活性与定制性更强,可以根据需求,做额外的一些定制操作。
github 地址:https://github.com/swagger-api/swagger-codegen
环境准备
官网安装地址:https://github.com/swagger-api/swagger-codegen#compatibility
- 工具安装。
- 导入 java 配置(要求 Java 11+)。
实现原理
实战演练
根据规范生成 server 和 client
通过 swagger-codegen
命令即可通过接口的配置信息生成对应的服务端以及客户端。
swagger-codegen generate -i <接口配置信息> -l <生成的语言> -o <输出的目录>
命令参数 | 作用 |
---|---|
-i |
定义读取的 OpenAPI 文档 |
-l |
设置生成的语言 |
--library |
设置使用的库 |
-o |
设置输出目录 |
如下示例:
- 通过命令生成 Java 服务端:
swagger-codegen generate -i ~/Desktop/swagger.yaml -l java -o java-server
不同的语言生成出来的数据作用都是一样的。选择自己熟悉的语言,方便阅读以及后续修改即可。Swagger 内置支持多个语言类型,具体对应:https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/main/resources
Swagger CodeGen 自定义代码模板
CodeGen 可以使用 mustache 模板技术生成各个语言的源代码。官方网站的模版文件路径在: modules/swagger-codegen/src/main/resources/${your-language}
。
- 根据模板生成自定义代码
swagger-codegen generate -i swagger.json -l java -o java -t <directory>
- 代码模板地址:https://ceshiren.com/t/topic/10408
总结
- 生成 server 和 client
- Swagger CodeGen 自定义代码模板