如何通过swagger解析器从yaml获取urireq res体

如何通过swagger解析器从yaml获取urireq res体,swagger,Swagger,我想从一个swagger yaml文件中获取uri、请求、响应正文和响应代码 然后我可以把它们放进我自己的数据库。 像这样: 我试图通过在java程序中添加io.swagger.parser.SwaggerParser来做一些事情。我认为斯威格·科德根的做法是正确的解决方案。但是我从codegen的源代码中找不到任何东西 这个问题是关于解析yaml文件并获取结构的。 下一个问题:最简单的方法是使用解析器解析规范文件。 然后你可以迭代你感兴趣的元素,做任何你想做的事情 如果您的规范输入是Swagg

我想从一个swagger yaml文件中获取uri、请求、响应正文和响应代码

然后我可以把它们放进我自己的数据库。 像这样:

我试图通过在java程序中添加io.swagger.parser.SwaggerParser来做一些事情。我认为斯威格·科德根的做法是正确的解决方案。但是我从codegen的源代码中找不到任何东西

这个问题是关于解析yaml文件并获取结构的。
下一个问题:

最简单的方法是使用解析器解析规范文件。 然后你可以迭代你感兴趣的元素,做任何你想做的事情

如果您的规范输入是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