美文网首页程序员
Swagger-codegen

Swagger-codegen

作者: 小鸡豆沙包 | 来源:发表于2018-03-01 07:25 被阅读862次

一切理论化和概念化的东西网上都能搜到,这里只记录了一个我自己的实践过程

现在经常用到 yaml, 就势必用到 swagger 的一套工具.
其中 swagger-codegen 可以根据yaml 文件 自动生成代码(可以不用手动写module就值得尝试一下). 实践如下:

第一部分 基本使用

Step1: Java 环境设定

确认 Java 是 1.7 以上版本. 并且在 environment 里有设定:

env_home_setting.png

system path 里也要设定:


env_path_setting.png
Step2: 下载 executable jar

从 maven直接下载: swagger-codegen-cli jar 我下了2.3.0 版.
如果要自己customize, 可以下载open source源代码, 然后用maven package也很方便. 在第二部分讲.

Step3: 把 jar 放在某个目录下

比如: C:\Java\jdk1.8.0_111\lib\swagger. 放在JDK 的lib里 为了集中管理jar, 新建一个swagger 文件夹,因为 接下去 generate 出来的 code都会默认放这个文件夹.

Step4: 运行

CMD 里, 进入之前放jar的文件目录, 运行:

java -jar swagger-codegen-cli-2.3.0.jar help generate

可以看到有一些help信息显示, 这表示准备工作都正确完成了.


codegen_help.png

用来运行 codegen的 基本命令格式如下:

java -jar swagger-codegen-cli-2.3.0.jar generate -i <path of your Swagger specification> -l <language>

比如你的 yaml 文件在 C:\Dev\git\abc.yaml, 要生成Java 代码, 那么命令行如下:

java -jar swagger-codegen-cli-2.3.0.jar generate -i C:\Dev\git\abc.yaml -l java


第二部分 修改源代码

自动生成的代码, 其路径 (或者说package) 默认是这样的:
package io.swagger.client.api/module

我希望尽量减少后期手动修改的内容,把这部分改成我自己需要的路径:
package com.abc.model;

这就需要稍微改动一下源代码了,步骤如下:

Step1: 获取open source 源代码

下载swagger-codegen 源代码,
解压到某个工作目录下,我放在: C:...\github\swaggerCodeGen
然后 import maven project到 eclipse,或者 STS 都可以。

Step2: 改代码

修改两个文件,第一个是 主要文件:

\modules\swagger-codegen\src\main\java\io\swagger\codegen\languages\JavaClientCodegen.java

modelPackage = "io.swagger.client.model"; 成你要的路径。

第二个文件是unit test 文件,和主功能无关,但是不修改的话测试没法过不能package 结束:

\modules\swagger-codegen\src\test\java\io\swagger\codegen\DefaultGeneratorTest.java

private static final String MODEL_ORDER_FILE = "/src/main/java/io/swagger/client/model/Order.java"; 改成相应的路径。

Step3: package

CMD到源代码目录下:

cd C:...\github\swaggerCodeGen\

mvn package -X

package success 后,可以在 C:...\github\swaggerCodeGen\modules\swagger-codegen-cli\target\lib 中找到 swagger-codegen-cli.jar

好了,把这个 jar 再拷贝到你之前的lib目录中(或者任何一个地方,反正不要在源代码里运行吧),按照第一部分的再运行喽,我能得到我想要的 路径 和 文件包啦。

相关文章

网友评论

    本文标题:Swagger-codegen

    本文链接:https://www.haomeiwen.com/subject/yobwxftx.html