parent
294b58a7f6
commit
8e0677a86e
@ -1,83 +0,0 @@ |
|||||||
package com.gitee.sop.websiteserver.manager; |
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONArray; |
|
||||||
import com.alibaba.fastjson.JSONObject; |
|
||||||
import com.gitee.sop.websiteserver.bean.DocInfo; |
|
||||||
import com.gitee.sop.websiteserver.bean.DocItem; |
|
||||||
import com.gitee.sop.websiteserver.bean.DocModule; |
|
||||||
import com.gitee.sop.websiteserver.bean.DocParameter; |
|
||||||
|
|
||||||
import java.util.ArrayList; |
|
||||||
import java.util.Collections; |
|
||||||
import java.util.List; |
|
||||||
import java.util.stream.Collectors; |
|
||||||
|
|
||||||
/** |
|
||||||
* @author tanghc |
|
||||||
*/ |
|
||||||
public class EasyopenDocParser implements DocParser { |
|
||||||
@Override |
|
||||||
public DocInfo parseJson(JSONObject docRoot) { |
|
||||||
String title = docRoot.getString("title"); |
|
||||||
List<DocItem> docItems = new ArrayList<>(); |
|
||||||
JSONArray apiModules = docRoot.getJSONArray("apiModules"); |
|
||||||
for (int i = 0; i < apiModules.size(); i++) { |
|
||||||
JSONObject module = apiModules.getJSONObject(i); |
|
||||||
JSONArray moduleItems = module.getJSONArray("moduleItems"); |
|
||||||
for (int k = 0; k < moduleItems.size(); k++) { |
|
||||||
JSONObject docInfo = moduleItems.getJSONObject(k); |
|
||||||
DocItem docItem = buildDocItem(docInfo); |
|
||||||
docItem.setModule(module.getString("name")); |
|
||||||
docItems.add(docItem); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
List<DocModule> docModuleList = docItems.stream() |
|
||||||
.collect(Collectors.groupingBy(DocItem::getModule)) |
|
||||||
.entrySet() |
|
||||||
.stream() |
|
||||||
.map(entry -> { |
|
||||||
DocModule docModule = new DocModule(); |
|
||||||
docModule.setModule(entry.getKey()); |
|
||||||
docModule.setDocItems(entry.getValue()); |
|
||||||
return docModule; |
|
||||||
}) |
|
||||||
.collect(Collectors.toList()); |
|
||||||
|
|
||||||
DocInfo docInfo = new DocInfo(); |
|
||||||
docInfo.setTitle(title); |
|
||||||
docInfo.setDocModuleList(docModuleList); |
|
||||||
return docInfo; |
|
||||||
} |
|
||||||
|
|
||||||
protected DocItem buildDocItem(JSONObject docInfo) { |
|
||||||
DocItem docItem = new DocItem(); |
|
||||||
docItem.setName(docInfo.getString("name")); |
|
||||||
docItem.setVersion(docInfo.getString("version")); |
|
||||||
docItem.setSummary(docInfo.getString("description")); |
|
||||||
docItem.setDescription(docInfo.getString("description")); |
|
||||||
List<DocParameter> docParameterList = this.buildParameterList(docInfo, "paramDefinitions"); |
|
||||||
docItem.setRequestParameters(docParameterList); |
|
||||||
|
|
||||||
List<DocParameter> responseParameterList = this.buildParameterList(docInfo, "resultDefinitions"); |
|
||||||
docItem.setResponseParameters(responseParameterList); |
|
||||||
|
|
||||||
return docItem; |
|
||||||
} |
|
||||||
|
|
||||||
protected List<DocParameter> buildParameterList(JSONObject docInfo, String key) { |
|
||||||
JSONArray params = docInfo.getJSONArray(key); |
|
||||||
if (params == null) { |
|
||||||
return Collections.emptyList(); |
|
||||||
} |
|
||||||
List<DocParameter> docParameterList = new ArrayList<>(); |
|
||||||
for (int i = 0; i < params.size(); i++) { |
|
||||||
JSONObject jsonObject = params.getJSONObject(i); |
|
||||||
DocParameter docParameter = jsonObject.toJavaObject(DocParameter.class); |
|
||||||
docParameter.setType(jsonObject.getString("dataType")); |
|
||||||
docParameterList.add(docParameter); |
|
||||||
} |
|
||||||
return docParameterList; |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
Loading…
Reference in new issue