【发布时间】:2020-03-28 16:58:42
【问题描述】:
我有一个 Swagger 1.2 doc.json 和以下 Java 代码,它使用 Swagger Parser 来从该文档中提取所有路径。问题是解析器没有得到所有的路径(从 50 只显示了 27 条)。
public class Temps {
public static void main (String[]args ) {
int totale=0;
Swagger swagger = new SwaggerParser().read("C:\\Users\\eya\\Desktop\\nodes.json");
Map<String, Path> paths = swagger.getPaths();
for (Map.Entry<String, Path> p : paths.entrySet()) {
Path path = p.getValue();
totale ++;
Map<HttpMethod, Operation> operations = path.getOperationMap();
for (java.util.Map.Entry<HttpMethod, Operation> o : operations.entrySet()) {
System.out.println("===");
System.out.println("PATH:" + p.getKey());
System.out.println("Http method:" + o.getKey());
System.out.println("Summary:" + o.getValue().getSummary());
System.out.println("Parameters number: " + o.getValue().getParameters().size());
for (Parameter parameter : o.getValue().getParameters()) {
System.out.println(" - " + parameter.getName());
}
System.out.println("Responses:");
for (Map.Entry<String, Response> r : o.getValue().getResponses().entrySet()) {
System.out.println(" - " + r.getKey() + ": " + r.getValue().getDescription());
}
}
}
System.out.println(totale);
}
}
有谁知道是什么导致了这个问题?
【问题讨论】:
-
您是否将 paths 与 operations 混淆了?单个路径(例如
/something)可以有多个操作 -GET /something、POST /something、DELETE /something等。所以你可能有 27 个路径但有 50 个操作。 -
如果 ^^ 不是这种情况,您能否发布您的
nodes.json文件或指向它的链接 - 以便其他人可以重现该问题? -
@Helen link 我需要获取所有方法及其路径!
-
@Helen 我在这个文档中有 50 多个路径,但 java 代码只显示 27 :'(