fix(接口测试): 修复导入导出swagger类型接口,描述信息丢失问题
--bug=1007229 --user=赵勇 [github#6835]接口导出后导入,响应内容中的描述信息没有了,同时请求参数中的值没有了 https://www.tapd.cn/55049933/s/1060958
This commit is contained in:
parent
3fe815d4e2
commit
9befafe4ad
|
@ -109,6 +109,7 @@ public class Swagger3Parser extends SwaggerAbstractParser {
|
||||||
if (operation != null) {
|
if (operation != null) {
|
||||||
MsHTTPSamplerProxy request = buildRequest(operation, pathName, method);
|
MsHTTPSamplerProxy request = buildRequest(operation, pathName, method);
|
||||||
ApiDefinitionWithBLOBs apiDefinition = buildApiDefinition(request.getId(), operation, pathName, method, importRequest);
|
ApiDefinitionWithBLOBs apiDefinition = buildApiDefinition(request.getId(), operation, pathName, method, importRequest);
|
||||||
|
apiDefinition.setDescription(operation.getDescription());
|
||||||
parseParameters(operation, request);
|
parseParameters(operation, request);
|
||||||
parseRequestBody(operation.getRequestBody(), request.getBody());
|
parseRequestBody(operation.getRequestBody(), request.getBody());
|
||||||
addBodyHeader(request);
|
addBodyHeader(request);
|
||||||
|
@ -296,11 +297,10 @@ public class Swagger3Parser extends SwaggerAbstractParser {
|
||||||
private void parseKvBody(Schema schema, Body body, Object data, Map<String, Schema> infoMap) {
|
private void parseKvBody(Schema schema, Body body, Object data, Map<String, Schema> infoMap) {
|
||||||
if (data instanceof JSONObject) {
|
if (data instanceof JSONObject) {
|
||||||
((JSONObject) data).forEach((k, v) -> {
|
((JSONObject) data).forEach((k, v) -> {
|
||||||
KeyValue kv = new KeyValue(k, v.toString());
|
Schema dataSchema = (Schema) v;
|
||||||
|
KeyValue kv = new KeyValue(k, String.valueOf(dataSchema.getExample()), dataSchema.getDescription());
|
||||||
Schema schemaInfo = infoMap.get(k);
|
Schema schemaInfo = infoMap.get(k);
|
||||||
if (schemaInfo != null) {
|
if (schemaInfo != null) {
|
||||||
kv.setDescription(schemaInfo.getDescription());
|
|
||||||
// kv.setRequired(schemaInfo.getRequired());
|
|
||||||
if (schemaInfo instanceof BinarySchema) {
|
if (schemaInfo instanceof BinarySchema) {
|
||||||
kv.setType("file");
|
kv.setType("file");
|
||||||
}
|
}
|
||||||
|
@ -311,10 +311,10 @@ public class Swagger3Parser extends SwaggerAbstractParser {
|
||||||
body.getKvs().add(kv);
|
body.getKvs().add(kv);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
KeyValue kv = new KeyValue(schema.getName(), data.toString(), schema.getDescription());
|
Schema dataSchema = (Schema) data;
|
||||||
|
KeyValue kv = new KeyValue(schema.getName(), String.valueOf(dataSchema.getExample()), schema.getDescription());
|
||||||
Schema schemaInfo = infoMap.get(schema.getName());
|
Schema schemaInfo = infoMap.get(schema.getName());
|
||||||
if (schemaInfo != null) {
|
if (schemaInfo != null) {
|
||||||
kv.setDescription(schemaInfo.getDescription());
|
|
||||||
if (schemaInfo instanceof BinarySchema) {
|
if (schemaInfo instanceof BinarySchema) {
|
||||||
kv.setType("file");
|
kv.setType("file");
|
||||||
}
|
}
|
||||||
|
@ -370,18 +370,7 @@ public class Swagger3Parser extends SwaggerAbstractParser {
|
||||||
return getDefaultValueByPropertyType(schema);
|
return getDefaultValueByPropertyType(schema);
|
||||||
} else {
|
} else {
|
||||||
if (schema.getType() != null) { // 特判属性不是对象的情况,直接将基本类型赋值进去
|
if (schema.getType() != null) { // 特判属性不是对象的情况,直接将基本类型赋值进去
|
||||||
if (StringUtils.equals(schema.getType(), "string")) {
|
return schema;
|
||||||
Object exampleObj = schema.getExample();
|
|
||||||
String example = null;
|
|
||||||
if (exampleObj != null) {
|
|
||||||
example = exampleObj.toString();
|
|
||||||
}
|
|
||||||
return example == null ? "" : example;
|
|
||||||
} else if (StringUtils.equals(schema.getType(), "boolean")) {
|
|
||||||
return schema.getExample();
|
|
||||||
} else if (StringUtils.equals(schema.getType(), "double")) {
|
|
||||||
return schema.getExample();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Object propertiesResult = parseSchemaProperties(schema, refSet, infoMap);
|
Object propertiesResult = parseSchemaProperties(schema, refSet, infoMap);
|
||||||
return propertiesResult == null ? getDefaultValueByPropertyType(schema) : propertiesResult;
|
return propertiesResult == null ? getDefaultValueByPropertyType(schema) : propertiesResult;
|
||||||
|
@ -490,6 +479,7 @@ public class Swagger3Parser extends SwaggerAbstractParser {
|
||||||
// 设置请求参数列表
|
// 设置请求参数列表
|
||||||
List<JSONObject> paramsList = buildParameters(requestObject);
|
List<JSONObject> paramsList = buildParameters(requestObject);
|
||||||
swaggerApiInfo.setParameters(paramsList);
|
swaggerApiInfo.setParameters(paramsList);
|
||||||
|
swaggerApiInfo.setDescription(apiDefinition.getDescription());
|
||||||
JSONObject methodDetail = JSON.parseObject(JSON.toJSONString(swaggerApiInfo));
|
JSONObject methodDetail = JSON.parseObject(JSON.toJSONString(swaggerApiInfo));
|
||||||
if (paths.getJSONObject(apiDefinition.getPath()) == null) {
|
if (paths.getJSONObject(apiDefinition.getPath()) == null) {
|
||||||
paths.put(apiDefinition.getPath(), new JSONObject());
|
paths.put(apiDefinition.getPath(), new JSONObject());
|
||||||
|
@ -711,8 +701,12 @@ public class Swagger3Parser extends SwaggerAbstractParser {
|
||||||
JSONObject properties = new JSONObject();
|
JSONObject properties = new JSONObject();
|
||||||
for (String key : kvs.keySet()) {
|
for (String key : kvs.keySet()) {
|
||||||
JSONObject property = new JSONObject();
|
JSONObject property = new JSONObject();
|
||||||
property.put("type", "string");
|
JSONObject obj = ((JSONObject) kvs.get(key));
|
||||||
property.put("example", kvs.getString(key));
|
property.put("type", StringUtils.isNotEmpty(obj.getString("type")) ? obj.getString("type") : "string");
|
||||||
|
String value = obj.getString("value");
|
||||||
|
property.put("example", value);
|
||||||
|
property.put("description", obj.getString("description"));
|
||||||
|
property.put("required", obj.getString("required"));
|
||||||
properties.put(key, property);
|
properties.put(key, property);
|
||||||
}
|
}
|
||||||
schema.put("properties", properties);
|
schema.put("properties", properties);
|
||||||
|
@ -724,9 +718,8 @@ public class Swagger3Parser extends SwaggerAbstractParser {
|
||||||
for (Object item : requestBody) {
|
for (Object item : requestBody) {
|
||||||
if (item instanceof JSONObject) {
|
if (item instanceof JSONObject) {
|
||||||
String name = ((JSONObject) item).getString("name");
|
String name = ((JSONObject) item).getString("name");
|
||||||
String value = ((JSONObject) item).getString("value");
|
|
||||||
if (name != null) {
|
if (name != null) {
|
||||||
result.put(name, value);
|
result.put(name, item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -755,7 +748,7 @@ public class Swagger3Parser extends SwaggerAbstractParser {
|
||||||
for (Object item : headValueList) {
|
for (Object item : headValueList) {
|
||||||
if (item instanceof JSONObject && ((JSONObject) item).getString("name") != null) {
|
if (item instanceof JSONObject && ((JSONObject) item).getString("name") != null) {
|
||||||
JSONObject head = new JSONObject(), headSchema = new JSONObject();
|
JSONObject head = new JSONObject(), headSchema = new JSONObject();
|
||||||
head.put("description", "");
|
head.put("description", ((JSONObject) item).getString("description"));
|
||||||
head.put("example", ((JSONObject) item).getString("value"));
|
head.put("example", ((JSONObject) item).getString("value"));
|
||||||
headSchema.put("type", "string");
|
headSchema.put("type", "string");
|
||||||
head.put("schema", headSchema);
|
head.put("schema", headSchema);
|
||||||
|
|
|
@ -15,4 +15,5 @@ public class SwaggerApiInfo {
|
||||||
private List<JSONObject> parameters; // 对应 API 的请求参数
|
private List<JSONObject> parameters; // 对应 API 的请求参数
|
||||||
private JSONObject requestBody;
|
private JSONObject requestBody;
|
||||||
private JSONObject responses;
|
private JSONObject responses;
|
||||||
|
private String description;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue