如何通过swagger解析器从yaml获取urireq res体
我想从一个swagger yaml文件中获取uri、请求、响应正文和响应代码 然后我可以把它们放进我自己的数据库。 像这样: 我试图通过在java程序中添加io.swagger.parser.SwaggerParser来做一些事情。我认为斯威格·科德根的做法是正确的解决方案。但是我从codegen的源代码中找不到任何东西 这个问题是关于解析yaml文件并获取结构的。如何通过swagger解析器从yaml获取urireq res体,swagger,Swagger,我想从一个swagger yaml文件中获取uri、请求、响应正文和响应代码 然后我可以把它们放进我自己的数据库。 像这样: 我试图通过在java程序中添加io.swagger.parser.SwaggerParser来做一些事情。我认为斯威格·科德根的做法是正确的解决方案。但是我从codegen的源代码中找不到任何东西 这个问题是关于解析yaml文件并获取结构的。 下一个问题:最简单的方法是使用解析器解析规范文件。 然后你可以迭代你感兴趣的元素,做任何你想做的事情 如果您的规范输入是Swagg
下一个问题:最简单的方法是使用解析器解析规范文件。 然后你可以迭代你感兴趣的元素,做任何你想做的事情 如果您的规范输入是Swagger 2.0格式的json或yaml,则可以使用以下解析器:
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-parser</artifactId>
<version>1.0.34</version>
</dependency>
@Jmini我尝试了用java进行SwaggerParse。我无法获得解决方案。我不认为SwaggerParse提供获取req、res等的api。也许yaml解析器是一个不错的选择。首先,谢谢!我昨天已经编写了类似您的示例的代码。我的问题只是您的注释。我无法获取请求示例和响应示例。这是我的输出。但我还想获取请求正文和响应正文,这在Swagger中显示为示例或模型。我想获取请求和响应的JSON。我想获取“orderRequest”的JSON,它在Swagger中显示为“$ref”。谢谢这是另一个问题。我认为有一些代码可以在swagger codegen中实现这一点。请询问其他问题并在此处添加链接。这是我的问题链接:用于帮助。
import java.util.Map;
import io.swagger.models.HttpMethod;
import io.swagger.models.Operation;
import io.swagger.models.Path;
import io.swagger.models.Response;
import io.swagger.models.Swagger;
import io.swagger.models.parameters.Parameter;
import io.swagger.parser.SwaggerParser;
public class UseParserExample {
public static void main(String[] args) {
Swagger swagger = new SwaggerParser().read("<path to your specification>");
Map<String, Path> paths = swagger.getPaths();
for (Map.Entry<String, Path> p : paths.entrySet()) {
Path path = p.getValue();
Map<HttpMethod, Operation> operations = path.getOperationMap();
for (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("");
}
}
}
}
PATH: /user/{username}
Http method: PUT
Summary: Updated user
Parameters number: 2
- username
- body
Responses:
- 400: Invalid user supplied
- 404: User not found
===
PATH: /user/{username}
Http method: DELETE
Summary: Delete user
Parameters number: 1
- username
Responses:
- 400: Invalid username supplied
- 404: User not found