SaggerCodegen动态生成SDK
2025年9月13日大约 3 分钟AmazonAmazon
概述
参考官方指南 docs/automate-your-sp-api-calls-using-java-sdk
流程图:
准备环境
- 下载 Swagger 代码生成器到
C:\\SwaggerToCL
wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.13/swagger-codegen-cli-2.4.13.jar -O swagger-codegen-cli.jar
- swagger codegen 命令手册查看
java -jar C:\SwaggerToCL\swagger-codegen-cli-2.4.13.jar help generate
在 C:\\SwaggerToCL
克隆selling-partner-api-models
git clone https://github.com/amzn/selling-partner-api-models.git
- 在
selling-partner-api-models/models
复制所有的json文件到C:\\SwaggerToCL
构建授权 (AA) 库 sellingpartner-api-aa-java
下列图标展示各版本准备环境,maven版本3.6.3+
分支 | JDK | swagger-codegen-cli 版本 | 代码version | 已验证? |
---|---|---|---|---|
v1.0 | 1.8+ | swagger-codegen-cli-2.4.13.jar | 1.0 | ☑️ |
SPAPIDoc....... | 1.8+ | swagger-codegen-cli-2.4.13.jar | 2.0 | ☑️ |
main | 17+ | swagger-codegen-cli-2.4.44.jar | 3.0 | ☑️ |
- 1.0,2.0,3.0需要切换分支,切换分支后需要重新打包,参考上面图表
打包 selling-partner-api-models\clients\sellingpartner-api-aa-java
mvn clean package
- 1.0 版本脚本
sellingpartnerapi-aa-java-1.0.jar
mvn install:install-file ^
-Dfile=C:/SwaggerToCL/selling-partner-api-models/clients/sellingpartner-api-aa-java/target/sellingpartnerapi-aa-java-1.0.jar ^
-DgroupId=com.amazon.sellingpartnerapi ^
-DartifactId=sellingpartnerapi-aa-java ^
-Dversion=1.0 ^
-Dpackaging=jar
sellingpartnerapi-aa-java-1.0-jar-with-dependencies.jar
mvn install:install-file ^
-Dfile=C:\SwaggerToCL\selling-partner-api-models\clients\sellingpartner-api-aa-java\target\sellingpartnerapi-aa-java-1.0-jar-with-dependencies.jar ^
-DgroupId=com.amazon.sellingpartnerapi ^
-DartifactId=sellingpartnerapi-aa-java ^
-Dversion=1.0 ^
-Dpackaging=jar
- 2.0 版本脚本
sellingpartnerapi-aa-java-2.0.jar
mvn install:install-file ^
-Dfile=C:\SwaggerToCL\selling-partner-api-models\clients\sellingpartner-api-aa-java\target\sellingpartnerapi-aa-java-2.0.jar ^
-DgroupId=com.amazon.sellingpartnerapi ^
-DartifactId=sellingpartnerapi-aa-java ^
-Dversion=2.0 ^
-Dpackaging=jar
sellingpartnerapi-aa-java-2.0-jar-with-dependencies.jar
mvn install:install-file ^
-Dfile=C:\SwaggerToCL\selling-partner-api-models\clients\sellingpartner-api-aa-java\target\sellingpartnerapi-aa-java-2.0-jar-with-dependencies.jar ^
-DgroupId=com.amazon.sellingpartnerapi ^
-DartifactId=sellingpartnerapi-aa-java ^
-Dversion=2.0 ^
-Dpackaging=jar
- 3.0 版本脚本
sellingpartnerapi-aa-java-3.0.jar
mvn install:install-file ^
-Dfile=C:\SwaggerToCL\selling-partner-api-models\clients\sellingpartner-api-aa-java\target\sellingpartnerapi-aa-java-3.0.jar ^
-DgroupId=com.amazon.sellingpartnerapi ^
-DartifactId=sellingpartnerapi-aa-java ^
-Dversion=3.0 ^
-Dpackaging=jar ^
-DgeneratePom=true
sellingpartnerapi-aa-java-3.0-jar-with-dependencies.jar
mvn install:install-file ^
-Dfile=C:\SwaggerToCL\selling-partner-api-models\clients\sellingpartner-api-aa-java\target\sellingpartnerapi-aa-java-3.0-jar-with-dependencies.jar ^
-DgroupId=com.amazon.sellingpartnerapi ^
-DartifactId=sellingpartnerapi-aa-java ^
-Dversion=3.0 ^
-Dpackaging=jar
可以将本地仓库的sellingpartnerapi-aa-java-1.0.jar
上传到私有仓库或者制品仓库
开始验证生成代码功能,为 SP-API 生成 Java SDK
- 打开CMD运行下面脚本。 参数可改成自己的即可,代码生成以后还要进行授权(AA)库依赖的支持,需要在pom文件中引入(AA)库依赖。
java -jar C:\SwaggerToCL\swagger-codegen-cli-2.4.13.jar generate ^
-l java ^
-t C:\SwaggerToCL\selling-partner-api-models\clients\sellingpartner-api-aa-java\resources\swagger-codegen\templates\ ^
-c C:\SwaggerToCL\selling-partner-api-models\clients\sellingpartner-api-aa-java\resources\java\config.json ^
-o D:\ZmCodeSpace\open-platform-starter\open-amazon-starter ^
-i C:\SwaggerToCL\sellers.json ^
--group-id com.open4play ^
--artifact-id open-amazon-starter ^
--artifact-version 1.0.0 ^
--api-package com.open4play.amazon.api ^
--model-package com.open4play.amazon.domain.sellers ^
--invoker-package com.open4play.amazon.infrastructure
- 3.0版本需要swagger-codegen-cli-2.4.44.jar版本(其他版本没试过)
java -jar C:\SwaggerToCL\swagger-codegen-cli-2.4.44.jar generate ^
-l java ^
-t C:\SwaggerToCL\selling-partner-api-models\clients\sellingpartner-api-aa-java\resources\swagger-codegen\templates\ ^
-c C:\SwaggerToCL\selling-partner-api-models\clients\sellingpartner-api-aa-java\resources\java\config.json ^
-o D:\ZmCodeSpace\open-platform-starter\open-amazon-starter ^
-i C:\SwaggerToCL\sellers.json ^
--group-id com.open4play ^
--artifact-id open-amazon-starter ^
--artifact-version 1.0.0 ^
--api-package com.open4play.amazon.api ^
--model-package com.open4play.amazon.domain.sellers ^
--invoker-package com.open4play.amazon.infrastructure
项目爆红使缺少授权(AA)库依赖, 在POM中添加即可
在生成的SDK中POM文件中添加授权(AA)依赖,然后重新Reload Project 即可
## 看需要哪个版本就引入哪个
# 1.0 版本
<dependency>
<groupId>com.amazon.sellingpartnerapi</groupId>
<artifactId>sellingpartnerapi-aa-java</artifactId>
<version>1.0</version>
</dependency>
# 2.0 版本
<dependency>
<groupId>com.amazon.sellingpartnerapi</groupId>
<artifactId>sellingpartnerapi-aa-java</artifactId>
<version>1.0</version>
</dependency>
# 3.0 版本
<dependency>
<groupId>com.amazon.sellingpartnerapi</groupId>
<artifactId>sellingpartnerapi-aa-java</artifactId>
<version>1.0</version>
</dependency>