【问题标题】:Parsing the swagger API doc (swagger.json) to Java objects将 swagger API 文档 (swagger.json) 解析为 Java 对象
【发布时间】:2020-01-14 06:06:22
【问题描述】:

我想将任何复杂的 swagger-API-document(swagger.json) 解析为 Java 对象。

可能是列表>

有哪些可用选项?

我正在尝试使用 io.swagger.parser.SwaggerParser。

但想确保我知道其他可用选项,并且我使用了足以解析任何复杂文档的正确解析器。

目前我们正在尝试如下。

public  List<Map<String,Object>> parse(String swaggerDocString) throws SwaggerParseException{
    try{
        Swagger swagger = new SwaggerParser().parse(swaggerDocString);
        return processSwagger(swagger);
    }catch(Exception ex){
        String exceptionRefId=OSGUtil.getExceptionReferenceId();
        logger.error("exception ref id " + exceptionRefId +  " : Error while loading swagger file " + ex);
        throw new SwaggerParseException("", ex.getLocalizedMessage(),exceptionRefId);
    }
}

public  List<Map<String,Object>> processSwagger(Swagger swagger){
    List<Map<String,Object>>  finalResult=new ArrayList<>();
    Map<String, Model>  definitions = swagger.getDefinitions();
    // loop all the available paths of the swagger
    if(swagger.getPaths()!=null && swagger.getPaths().keySet()!=null &&swagger.getPaths().keySet().size()>0 ){
        swagger.getPaths().keySet().forEach(group->{
            //get the path
            Path path=swagger.getPath(group);
            //list all the operations of the path
            Map<HttpMethod,Operation> mapList=path.getOperationMap();
            mapList.forEach((httpMethod,operation)->{
                processPathData(finalResult,operation,path,group,httpMethod,definitions,group);
            });

        });
    }
    return finalResult;
}

有什么区别

swagger-compat-spec-parser, 大摇大摆的解析器

【问题讨论】:

    标签: swagger


    【解决方案1】:

    swagger 拥有所有技术的实现。 https://swagger.io/tools/open-source/open-source-integrations/

    这里有将 swagger 解析为 Java 的详细信息。 https://github.com/swagger-api/swagger-parser/tree/v1

    【讨论】:

      猜你喜欢
      • 2015-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-30
      • 2015-09-12
      • 1970-01-01
      • 2014-10-17
      相关资源
      最近更新 更多