共计 8843 个字符,预计需要花费 23 分钟才能阅读完成。
Eolink 神技之一:基于数据库智能生成 API 文档
Eolink 神技之二:API 全生命周期治理
Eolink 神技之三:钉钉、企业微信、蓝信、飞书等工具 API 对接
前言
咱们在开发过程中会有很多小伙伴一起来做合作开发,然而会呈现一个问题,就是每个人的正文习惯都不雷同,那么,咱们在后续理解程序的时候就很麻烦,Eolink 提供的这个性能就十分棒,能够间接主动全代码正文,咱们只须要填写大量的关键字即可。十分的不便高效,并且对立了正文标准。在本博客中,我会先演示主动全代码正文,之后会依据咱们正文的内容一键式上传到咱们的 Eolink 进行批量测试。
一、主动全代码正文
Eolink 提供了【idea】的【Eolink ApiKit】插件,此插件能够疾速的将类与函数均增加一个规范的 Eolink 正文办法。
正文示例:
这里为了测试不便,我写了一些间接返回的测试接口。
1/**
2 * @eo.name UpdateById
3 * @eo.url /api/UpdateById
4 * @eo.method put
5 * @eo.request-type formdata
6 * @param id
7 * @param introduce
8 * @return Object
9 */@PutMapping("/api/UpdateById")public Object UpdateById(String id,String introduce) {
10 try {11 return new SUCCESS("批改"+id+"胜利", UUID.randomUUID());
12 } catch (Exception e) {13 return new ERROR("批改"+id+"失败", UUID.randomUUID());
14 }
15}
1、测试环境
测试语言:Java
零碎环境:win10
开发环境:IntelliJ IDEA 2021.3.2(反对 2020-2022 年版本)
Plugins 搜寻:【Eolink Apikit】点击【install】装置。
2、Eolink Apikit 装置
2.1 自建 bootstrap 我的项目用作测试
这块步骤就略过了,咱们程序员应该都是会的。我用的 maven 的 pom.xml 我分享一下。一看就晓得是个自定义的返回测试微服务。
1 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
2.2 操作地位
点击【File】->【Settings…】
2.3 搜寻并装置【Eolink ApiKit】
这里须要依照步骤操作:
- 抉择【Plugins】。
- 在搜寻框中搜寻【Eolink ApiKit】。
- 点击搜寻后果【Search Results】中呈现的【Eolink ApiKit】的【Install】按钮,我这里装置过了,故而显示一个过来时的【Installed】。
- 点击【OK】确认操作。
2.4 增加 eo 正文
这里我给了个示例代码,不便操作, 这也是未加正文的类与函数。
1 import org.springframework.web.bind.annotation.*;
2
3 import java.util.UUID;
4
5 @RestController@CrossOriginpublic class EolinkApiController {
6
7 @GetMapping("/api/GetInfo")public Object GetInfo() {8 return new SUCCESS("初始化胜利", UUID.randomUUID());
9 }
10
11 @GetMapping("/api/SelectById")public Object SelectById(String id) {12 return new SUCCESS("查问"+id+"胜利", UUID.randomUUID());
13 }
14
15 @PostMapping("/api/Login")public Object Login(String userName,String passWord) {16 return new SUCCESS("登录胜利", UUID.randomUUID());
17 }
18
19 @PostMapping("/api/AddInfo")public Object AddInfo(String userName,String passWord,String introduce) {20 return new SUCCESS("增加胜利", UUID.randomUUID());
21 }
22
23 @PutMapping("/api/UpdateById")public Object UpdateById(String id,String introduce) {
24 try {25 return new SUCCESS("批改"+id+"胜利", UUID.randomUUID());
26 } catch (Exception e) {27 return new ERROR("批改"+id+"失败", UUID.randomUUID());
28 }
29 }
30 }
31 // 本人找个地位创立一个,这个不须要引入到 API 中,我就不便用于返回 class BackResult {32 public BackResult(String message, Object result) {
33 this.state = true;
34 this.message = message;
35 this.result = result;
36 }
37
38 public boolean state;
39 public String message;
40 public Object result;
41 }
42
43 class SUCCESS extends BackResult {
44
45 public SUCCESS(String message, Object result) {46 super(message, result);
47 this.state = true;
48 }
49 }
50
51 class ERROR extends BackResult {
52
53 public ERROR(String message, Object result) {54 super(message, result);
55 this.state = false;
56 }
57 }
增加正文办法:
鼠标右键点击【Generate Class Doc】抉择【HTTP】即可引入
2.5 正文成果
1 import org.springframework.web.bind.annotation. ;
2
3 import java.util.UUID;
4
5 /*
6 * @eo.api-type http
7 * @eo.groupName 默认分组
8 * @eo.path
9 /@RestController@CrossOriginpublic class EolinkApiController {
10
11 /*
12 * @eo.name GetInfo
13 * @eo.url /api/GetInfo
14 * @eo.method get
15 * @eo.request-type formdata
16 * @return Object
17 /@GetMapping("/api/GetInfo")public Object GetInfo() {18 return new SUCCESS("初始化胜利", UUID.randomUUID());
19 }
20
21 /*
22 * @eo.name SelectById
23 * @eo.url /api/SelectById
24 * @eo.method get
25 * @eo.request-type formdata
26 * @param id
27 * @return Object
28 /@GetMapping("/api/SelectById")public Object SelectById(String id) {29 return new SUCCESS("查问"+id+"胜利", UUID.randomUUID());
30 }
31
32 /*
33 * @eo.name Login
34 * @eo.url /api/Login
35 * @eo.method post
36 * @eo.request-type formdata
37 * @param userName
38 * @param passWord
39 * @return Object
40 /@PostMapping("/api/Login")public Object Login(String userName,String passWord) {41 return new SUCCESS("登录胜利", UUID.randomUUID());
42 }
43
44 /*
45 * @eo.name AddInfo
46 * @eo.url /api/AddInfo
47 * @eo.method post
48 * @eo.request-type formdata
49 * @param userName
50 * @param passWord
51 * @param introduce
52 * @return Object
53 /@PostMapping("/api/AddInfo")public Object AddInfo(String userName,String passWord,String introduce) {54 return new SUCCESS("增加胜利", UUID.randomUUID());
55 }
56
57 /*
58 * @eo.name UpdateById
59 * @eo.url /api/UpdateById
60 * @eo.method put
61 * @eo.request-type formdata
62 * @param id
63 * @param introduce
64 * @return Object
65 */@PutMapping("/api/UpdateById")public Object UpdateById(String id,String introduce) {
66 try {67 return new SUCCESS("批改"+id+"胜利", UUID.randomUUID());
68 } catch (Exception e) {69 return new ERROR("批改"+id+"失败", UUID.randomUUID());
70 }
71 }
72 }
二、一键上传 API
1、配置服务信息
前置条件:再次关上【Settings】
操作步骤:
- 搜寻 Eolink
- 抉择 Eolink Settings
- 服务器上获取【Server】、【SpaceKey】、【ProjectHashKey】
- 输出注册账号
- StringType 抉择【camelCase(default)】
- 点击【OK】,这里为了能放大的截图我就没截取【OK】,间接能看到的。
2、Server 获取
在本人的网页服务中就能看到对应的域名,然而这里在域名前面须要加上【/api】
3、SpaceKey 获取
大胆的往后拉,网址的最初一个参数就是咱们要的 spaceKey。
4、ProjectHashKey 获取
复制的时候认真一些,别落下一个两个字符的。
5、抉择上传分组
因为主动正文会抉择【默认分组】,咱们须要把默认分组改一下。
增加分组
我创立了一个叫做【Eolink20221124】的分组。
查看未上传的组。
批改正文
6、一键上传 API ——单个 API 上传
鼠标右键抉择【Upload Api】就是单个 API 上传。
先抉择须要上传的 API 接口名称,再点击 Upload 上传即可。
右下角会显示上传胜利提醒,这里仅仅上传了【GetInfo】所以只显示一个。
胜利成果:
2.7、一键上传 API ——上传所有 API
抉择【Upload All Api】
上传胜利显示,这里显示了上传了所有的 API。
胜利成果:
8、接口测试
测试胜利:
三、接口正文
我写了个接口类,能够间接复制过来测试一下,很不便。
1 public interface EolinkDAO {2 public Object GetInfo();
3 public Object SelectById(String id) ;
4 public Object Login(String userName,String passWord);
5 public Object AddInfo(String userName,String passWord,String introduce);
6 public Object UpdateById(String id,String introduce);
7 }
这是正文成果:
1 /**
2 * @eo.api-type http
3 * @eo.groupName 默认分组
4 * @eo.path
5 /public interface EolinkDAO {
6 /*
7 * @eo.name GetInfo
8 * @eo.url
9 * @eo.method get
10 * @eo.request-type formdata
11 * @return Object
12 /public Object GetInfo();
13 /*
14 * @eo.name SelectById
15 * @eo.url
16 * @eo.method get
17 * @eo.request-type formdata
18 * @param id
19 * @return Object
20 /public Object SelectById(String id) ;
21 /*
22 * @eo.name Login
23 * @eo.url
24 * @eo.method get
25 * @eo.request-type formdata
26 * @param userName
27 * @param passWord
28 * @return Object
29 /public Object Login(String userName,String passWord);
30 /*
31 * @eo.name AddInfo
32 * @eo.url
33 * @eo.method get
34 * @eo.request-type formdata
35 * @param userName
36 * @param passWord
37 * @param introduce
38 * @return Object
39 /public Object AddInfo(String userName,String passWord,String introduce);
40 /*
41 * @eo.name UpdateById
42 * @eo.url
43 * @eo.method get
44 * @eo.request-type formdata
45 * @param id
46 * @param introduce
47 * @return Object
48 */public Object UpdateById(String id,String introduce);
49 }
四、属性正文
测试代码:
1 import java.util.Date;
2
3 public class Eolink {
4 private String id;
5 private Date createDate;
6 private String projectName;
7 private String introduce;
8
9 public String getId() {
10 return id;
11 }
12
13 public void setId(String id) {
14 this.id = id;
15 }
16
17 public Date getCreateDate() {
18 return createDate;
19 }
20
21 public void setCreateDate(Date createDate) {
22 this.createDate = createDate;
23 }
24
25 public String getProjectName() {
26 return projectName;
27 }
28
29 public void setProjectName(String projectName) {
30 this.projectName = projectName;
31 }
32
33 public String getIntroduce() {
34 return introduce;
35 }
36
37 public void setIntroduce(String introduce) {
38 this.introduce = introduce;
39 }
40 }
正文成果:
1 import java.util.Date;
2
3 /**
4 * @eo.api-type http
5 * @eo.groupName 默认分组
6 * @eo.path
7 /public class Eolink {
8 private String id;
9 private Date createDate;
10 private String projectName;
11 private String introduce;
12
13 /*
14 * @eo.name getId
15 * @eo.url
16 * @eo.method get
17 * @eo.request-type formdata
18 * @return String
19 /public String getId() {
20 return id;
21 }
22
23 /*
24 * @eo.name setId
25 * @eo.url
26 * @eo.method get
27 * @eo.request-type formdata
28 * @param id
29 * @return void
30 /public void setId(String id) {
31 this.id = id;
32 }
33
34 /*
35 * @eo.name getCreateDate
36 * @eo.url
37 * @eo.method get
38 * @eo.request-type formdata
39 * @return Date
40 /public Date getCreateDate() {
41 return createDate;
42 }
43
44 /*
45 * @eo.name setCreateDate
46 * @eo.url
47 * @eo.method get
48 * @eo.request-type formdata
49 * @param createDate
50 * @return void
51 /public void setCreateDate(Date createDate) {
52 this.createDate = createDate;
53 }
54
55 /*
56 * @eo.name getProjectName
57 * @eo.url
58 * @eo.method get
59 * @eo.request-type formdata
60 * @return String
61 /public String getProjectName() {
62 return projectName;
63 }
64
65 /*
66 * @eo.name setProjectName
67 * @eo.url
68 * @eo.method get
69 * @eo.request-type formdata
70 * @param projectName
71 * @return void
72 /public void setProjectName(String projectName) {
73 this.projectName = projectName;
74 }
75
76 /*
77 * @eo.name getIntroduce
78 * @eo.url
79 * @eo.method get
80 * @eo.request-type formdata
81 * @return String
82 /public String getIntroduce() {
83 return introduce;
84 }
85
86 /*
87 * @eo.name setIntroduce
88 * @eo.url
89 * @eo.method get
90 * @eo.request-type formdata
91 * @param introduce
92 * @return void
93 */public void setIntroduce(String introduce) {
94 this.introduce = introduce;
95 }
五、总结
主动正文我测试了类和函数、属性等内容,都是能够正文的,而且很规范的正文,咱们在方才的整个操作过程中也能看到其规范度还是很高的。
这是根底的一个类的 main 办法正文。甚至只有有肯定英语根底的小朋友也能很明确的看出正文的信息,所以十分的举荐给刚上大学的小朋友们,当前再也不会被老师说没写正文,或者正文写的不规范了,并且所有接口都能一键上传,测试起来也是很不便。
1 /**
2 * @eo.api-type http
3 * @eo.groupName 默认分组
4 * @eo.path
5 /public class Action {
6 /*
7 * @eo.name main
8 * @eo.url
9 * @eo.method get
10 * @eo.request-type formdata
11 * @param args
12 * @return void
13 */public static void main(String[] args) {14 System.out.println("Hello Eolink");
15 }
16 }
体验地址:IDEA 工具插件 Eolink ApiKit