这是坚持技术写作计划(含翻译)的第61篇,定个小目标999,每周最少2篇。
本文主要讲解如何基于三方提供的类openapi文档来逆向生成sdk(少掉挨个手敲的烦恼),生成的pojo支持lombok
前置准备
- Nodejs12 LTS+
- Java8+
- Git
研究了swagger自己的 github.com/swagger-api…
微软家的 github.com/Azure/autor…
以及 openapi的 github.com/OpenAPITool…
最后选择了github.com/OpenAPITool…
安装openapi-generator
npm install @openapitools/openapi-generator-cli -g
git clone https://github.com/anjia0532/openapi-generator-templates
openapi-generator-cli generate -t openapi-generator-templates\generator-templates\JavaSpring\spring-boot-lombok-actuator -g spring -puseLombok=true -i swaggerApi.json --skip-validate-spec
参考资料 github.com/OpenAPITool…
参考资料 github.com/anjia0532/o…
生成结果
src
└─ main
├─ java
│ └─ org
│ └─ openapitools
│ ├─ api # 调用对方api的client
│ │ ├─ xxx.java
│ ├─ configuration # 配置相关
│ │ ├─ xxx.java
│ ├─ model # pojo类
│ │ ├─ xxx.java
│ ├─ OpenAPI2SpringBoot.java
│ └─ RFC3339DateFormat.java
├─ resources
│ └─ application.properties
│ └─ RFC3339DateFormat.java
└─ pom.xml
以实际用到的某个不重要的model类演示下生成的效果
package org.openapitools.model;
import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonCreator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.openapitools.jackson.nullable.JsonNullable;
import javax.validation.Valid;
import javax.validation.constraints.*;
import lombok.*;
/**
* EmptyObject2
*/
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-04-09T19:10:24.687+08:00[Asia/Shanghai]")
@Getter
@Setter
@Builder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class EmptyObject2 {
/**
* 获取渠道
*/
@JsonProperty("getChannel")
private String getChannel;
/**
* 优惠券ID
*/
@JsonProperty("couponIds")
private String couponIds;
/**
* 会员ID
*/
@JsonProperty("memberId")
private String memberId;
}
招聘小广告
山东济南的小伙伴欢迎投简历啊 加入我们 , 一起搞事情。
长期招聘,Java程序员,大数据工程师,运维工程师,前端工程师。