Skip to content

Commit 78c03c5

Browse files
committed
接口同步
1 parent f21b103 commit 78c03c5

File tree

5 files changed

+91
-71
lines changed

5 files changed

+91
-71
lines changed

apidoc-yapi-plugin/src/main/java/com/ztianzeng/apidoc/yapi/module/YapiApiDTO.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ public class YapiApiDTO implements Serializable {
3939
*/
4040
private String requestBody;
4141

42+
private String tag;
43+
4244
/**
4345
* 请求方法
4446
*/

apidoc-yapi-plugin/src/main/java/com/ztianzeng/apidoc/yapi/module/YapiCatMenuParam.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class YapiCatMenuParam implements Serializable {
2424
/**
2525
* 项目id
2626
*/
27-
private Integer project_id;
27+
private String project_id;
2828
/**
2929
* token
3030
*/
@@ -34,23 +34,23 @@ public class YapiCatMenuParam implements Serializable {
3434
public YapiCatMenuParam() {
3535
}
3636

37-
public YapiCatMenuParam(String desc, String name, Integer project_id, String token) {
37+
public YapiCatMenuParam(String desc, String name, String project_id, String token) {
3838
this.desc = desc;
3939
this.name = name;
4040
this.project_id = project_id;
4141
this.token = token;
4242
}
4343

44-
public YapiCatMenuParam(Integer project_id, String token) {
44+
public YapiCatMenuParam(String project_id, String token) {
4545
this.project_id = project_id;
4646
this.token = token;
4747
}
4848

49-
public YapiCatMenuParam(String name, Integer project_id, String token) {
49+
public YapiCatMenuParam(String name, String project_id, String token) {
5050
this.name = name;
5151
this.project_id = project_id;
5252
this.token = token;
53-
if (StringUtils.isNotEmpty(name)) {
53+
if (StringUtils.isEmpty(name)) {
5454
this.name = YapiConstant.menu;
5555
}
5656
}
@@ -71,11 +71,11 @@ public void setName(String name) {
7171
this.name = name;
7272
}
7373

74-
public Integer getProject_id() {
74+
public String getProject_id() {
7575
return project_id;
7676
}
7777

78-
public void setProject_id(Integer project_id) {
78+
public void setProject_id(String project_id) {
7979
this.project_id = project_id;
8080
}
8181

apidoc-yapi-plugin/src/main/java/com/ztianzeng/apidoc/yapi/module/YapiSaveParam.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class YapiSaveParam implements Serializable {
3737
/**
3838
* 分类id
3939
*/
40-
private String catid;
40+
private Integer catid;
4141
/**
4242
* 请求数据类型 raw,form,json
4343
*/

apidoc-yapi-plugin/src/main/java/com/ztianzeng/apidoc/yapi/upload/UploadToYapi.java

Lines changed: 79 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.ztianzeng.apidoc.yapi.upload;
22

33
import com.fasterxml.jackson.core.JsonProcessingException;
4+
import com.fasterxml.jackson.core.type.TypeReference;
5+
import com.fasterxml.jackson.databind.ObjectMapper;
46
import com.ztianzeng.apidoc.models.OpenAPI;
57
import com.ztianzeng.apidoc.models.Operation;
68
import com.ztianzeng.apidoc.models.Paths;
@@ -10,6 +12,7 @@
1012
import com.ztianzeng.apidoc.yapi.utils.HttpClientUtil;
1113
import org.apache.commons.lang3.StringUtils;
1214
import org.apache.http.HttpEntity;
15+
import org.apache.http.client.methods.HttpGet;
1316
import org.apache.http.client.methods.HttpPost;
1417
import org.apache.http.entity.StringEntity;
1518

@@ -24,12 +27,24 @@
2427
* @date 2019-06-14 14:18
2528
*/
2629
public class UploadToYapi {
30+
public static Map<String, Map<String, Integer>> catMap = new HashMap<>();
31+
public final ObjectMapper mapper = Json.mapper();
32+
private final String projectToken;
33+
private final String yapiUrl;
34+
private final String projectId;
35+
36+
public UploadToYapi(String projectToken, String yapiUrl, String projectId) {
37+
this.projectToken = projectToken;
38+
this.yapiUrl = yapiUrl;
39+
this.projectId = projectId;
40+
}
41+
2742
/**
2843
* 上传OpenAPi
2944
*
3045
* @param openAPI
3146
*/
32-
public void upload(OpenAPI openAPI, String projectToken, String yapiUrl) {
47+
public void upload(OpenAPI openAPI) {
3348
List<YapiApiDTO> yapiApiDTOS = toYapiDTO(openAPI);
3449
if (yapiApiDTOS != null) {
3550
for (YapiApiDTO yapiApiDTO : yapiApiDTOS) {
@@ -42,10 +57,11 @@ public void upload(OpenAPI openAPI, String projectToken, String yapiUrl) {
4257
} else {
4358
yapiSaveParam.setMenu(YapiConstant.menu);
4459
}
45-
yapiSaveParam.setCatid("709");
60+
61+
yapiSaveParam.setCatid(getCatIdOrCreate(yapiApiDTO.getTag()));
4662
try {
4763
// 上传
48-
YapiResponse yapiResponse = new UploadToYapi().uploadSave(yapiSaveParam);
64+
YapiResponse yapiResponse = uploadSave(yapiSaveParam);
4965
if (yapiResponse.getErrcode() != 0) {
5066

5167
} else {
@@ -87,8 +103,8 @@ public YapiResponse uploadSave(YapiSaveParam yapiSaveParam) throws IOException {
87103
} else {
88104
yapiSaveParam.getReq_headers().add(yapiHeaderDTO);
89105
}
90-
String response = HttpClientUtil.ObjectToString(HttpClientUtil.getHttpclient().execute(this.getHttpPost(yapiSaveParam.getYapiUrl() + YapiConstant.yapiSave, Json.mapper().writeValueAsString(yapiSaveParam))), "utf-8");
91-
return Json.mapper().readValue(response, YapiResponse.class);
106+
String response = HttpClientUtil.ObjectToString(HttpClientUtil.getHttpclient().execute(this.getHttpPost(yapiSaveParam.getYapiUrl() + YapiConstant.yapiSave, mapper.writeValueAsString(yapiSaveParam))), "utf-8");
107+
return mapper.readValue(response, YapiResponse.class);
92108
}
93109

94110
/**
@@ -129,10 +145,10 @@ public List<YapiApiDTO> toYapiDTO(OpenAPI openAPI) {
129145

130146

131147
yapiApiDTO.setReq_params(operation.getParameters());
132-
148+
yapiApiDTO.setTag(operation.getTags().stream().findFirst().orElse(""));
133149
try {
134-
yapiApiDTO.setRequestBody(Json.mapper().writeValueAsString(operation.getRequestBody()));
135-
yapiApiDTO.setResponse(Json.mapper().writeValueAsString(operation.getResponses()));
150+
yapiApiDTO.setRequestBody(mapper.writeValueAsString(operation.getRequestBody()));
151+
yapiApiDTO.setResponse(mapper.writeValueAsString(operation.getResponses()));
136152
} catch (JsonProcessingException e) {
137153
e.printStackTrace();
138154
}
@@ -158,58 +174,60 @@ public List<YapiApiDTO> toYapiDTO(OpenAPI openAPI) {
158174
* @author: chengsheng@qbb6.com
159175
* @date: 2019/5/15
160176
*/
161-
// public YapiResponse getCatIdOrCreate(YapiSaveParam yapiSaveParam) {
162-
// Map<String, Integer> catMenuMap = catMap.get(yapiSaveParam.getProjectId().toString());
163-
// if (catMenuMap != null) {
164-
// if (!Strings.isNullOrEmpty(yapiSaveParam.getMenu())) {
165-
// if (Objects.nonNull(catMenuMap.get(yapiSaveParam.getMenu()))) {
166-
// return new YapiResponse(catMenuMap.get(yapiSaveParam.getMenu()));
167-
// }
168-
// } else {
169-
// if (Objects.nonNull(catMenuMap.get(YapiConstant.menu))) {
170-
// return new YapiResponse(catMenuMap.get(YapiConstant.menu));
171-
// }
172-
// yapiSaveParam.setMenu(YapiConstant.menu);
173-
// }
174-
// }
175-
// String response = null;
176-
// try {
177-
// response = HttpClientUtil.ObjectToString(HttpClientUtil.getHttpclient().execute(this.getHttpGet(yapiSaveParam.getYapiUrl() + YapiConstant.yapiCatMenu + "?project_id=" + yapiSaveParam.getProjectId() + "&token=" + yapiSaveParam.getToken())), "utf-8");
178-
// YapiResponse yapiResponse = gson.fromJson(response, YapiResponse.class);
179-
// if (yapiResponse.getErrcode() == 0) {
180-
// List<YapiCatResponse> list = (List<YapiCatResponse>) yapiResponse.getData();
181-
// list = gson.fromJson(gson.toJson(list), new TypeToken<List<YapiCatResponse>>() {
182-
// }.getType());
183-
// for (YapiCatResponse yapiCatResponse : list) {
184-
// if (yapiCatResponse.getName().equals(yapiSaveParam.getMenu())) {
185-
// Map<String, Integer> catMenuMapSub = catMap.get(yapiSaveParam.getProjectId().toString());
186-
// if (catMenuMapSub != null) {
187-
// catMenuMapSub.put(yapiCatResponse.getName(), yapiCatResponse.get_id());
188-
// } else {
189-
// catMenuMapSub = new HashMap<>();
190-
// catMenuMapSub.put(yapiCatResponse.getName(), yapiCatResponse.get_id());
191-
// catMap.put(yapiSaveParam.getProjectId().toString(), catMenuMapSub);
192-
// }
193-
// return new YapiResponse(yapiCatResponse.get_id());
194-
// }
195-
// }
196-
// }
197-
// YapiCatMenuParam yapiCatMenuParam = new YapiCatMenuParam(yapiSaveParam.getMenu(), yapiSaveParam.getProjectId(), yapiSaveParam.getToken());
198-
// String responseCat = HttpClientUtil.ObjectToString(HttpClientUtil.getHttpclient().execute(this.getHttpPost(yapiSaveParam.getYapiUrl() + YapiConstant.yapiAddCat, gson.toJson(yapiCatMenuParam))), "utf-8");
199-
// YapiCatResponse yapiCatResponse = gson.fromJson(gson.fromJson(responseCat, YapiResponse.class).getData().toString(), YapiCatResponse.class);
200-
// Map<String, Integer> catMenuMapSub = catMap.get(yapiSaveParam.getProjectId().toString());
201-
// if (catMenuMapSub != null) {
202-
// catMenuMapSub.put(yapiCatResponse.getName(), yapiCatResponse.get_id());
203-
// } else {
204-
// catMenuMapSub = new HashMap<>();
205-
// catMenuMapSub.put(yapiCatResponse.getName(), yapiCatResponse.get_id());
206-
// catMap.put(yapiSaveParam.getProjectId().toString(), catMenuMapSub);
207-
// }
208-
// return new YapiResponse(yapiCatResponse.get_id());
209-
// } catch (IOException e) {
210-
// e.printStackTrace();
211-
// return new YapiResponse(0, e.toString());
212-
// }
213-
// }
177+
public Integer getCatIdOrCreate(String tag) {
178+
Integer catId = null;
179+
String response = null;
180+
if (Optional.ofNullable(catMap.get(projectId)).map(a -> a.get(tag)).isPresent()) {
181+
return catMap.get(projectId).get(tag);
182+
}
183+
try {
184+
response = HttpClientUtil.ObjectToString(HttpClientUtil.getHttpclient().execute(this.getHttpGet(yapiUrl + YapiConstant.yapiCatMenu + "?project_id=" + projectId + "&token=" + projectToken)), "utf-8");
185+
YapiResponse yapiResponse = mapper.readValue(response, YapiResponse.class);
186+
if (yapiResponse.getErrcode() == 0) {
187+
List<YapiCatResponse> list = (List<YapiCatResponse>) yapiResponse.getData();
188+
list = mapper.readValue(mapper.writeValueAsString(list), new TypeReference<List<YapiCatResponse>>() {
189+
});
190+
for (YapiCatResponse yapiCatResponse : list) {
191+
if (yapiCatResponse.getName().equals(tag)) {
192+
Map<String, Integer> catMenuMapSub = catMap.get(projectId);
193+
if (catMenuMapSub != null) {
194+
catMenuMapSub.put(yapiCatResponse.getName(), yapiCatResponse.get_id());
195+
} else {
196+
catMenuMapSub = new HashMap<>();
197+
catMenuMapSub.put(yapiCatResponse.getName(), yapiCatResponse.get_id());
198+
catMap.put(projectId, catMenuMapSub);
199+
}
200+
catId = yapiCatResponse.get_id();
201+
}
202+
}
203+
}
204+
YapiCatMenuParam yapiCatMenuParam = new YapiCatMenuParam(tag, projectId, projectToken);
205+
String responseCat = HttpClientUtil.ObjectToString(HttpClientUtil.getHttpclient().execute(this.getHttpPost(yapiUrl + YapiConstant.yapiAddCat, mapper.writeValueAsString(yapiCatMenuParam))), "utf-8");
206+
catId = (Integer) ((LinkedHashMap) mapper.readValue(responseCat, YapiResponse.class).getData()).get("_id");
207+
String name = (String) ((LinkedHashMap) mapper.readValue(responseCat, YapiResponse.class).getData()).get("name");
208+
Map<String, Integer> catMenuMapSub = catMap.get(projectId);
209+
if (catMenuMapSub != null) {
210+
catMenuMapSub.put(name, catId);
211+
} else {
212+
catMenuMapSub = new HashMap<>();
213+
catMenuMapSub.put(name, catId);
214+
catMap.put(projectId, catMenuMapSub);
215+
}
216+
217+
} catch (IOException e) {
218+
e.printStackTrace();
219+
}
220+
221+
return catMap.get(projectId).get(tag);
222+
}
223+
224+
private HttpGet getHttpGet(String url) {
225+
try {
226+
return HttpClientUtil.getHttpGet(url, "application/json", "application/json; charset=utf-8");
227+
} catch (IOException e) {
228+
e.printStackTrace();
229+
}
230+
return null;
231+
}
214232

215233
}

apidoc-yapi-plugin/src/test/java/com/ztianzeng/apidoc/yapi/upload/UploadToYapiTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ public void upload() throws IOException {
546546
OpenAPI openAPI = Json.mapper().readValue(openAPI_S, OpenAPI.class);
547547

548548

549-
UploadToYapi uploadToYapi = new UploadToYapi();
550-
uploadToYapi.upload(openAPI, "0feace17c2d8c89f2849", "http://yapi.cnabc-inc.com");
549+
UploadToYapi uploadToYapi = new UploadToYapi("511b6c128d2c7ff5b4cc", "http://yapi.cnabc-inc.com", "173");
550+
uploadToYapi.upload(openAPI);
551551
}
552552
}

0 commit comments

Comments
 (0)