Синтаксический анализ API swagger делает c (swagger. json) для Java объектов. - PullRequest
1 голос
/ 14 января 2020

Я хочу проанализировать любой сложный swagger-API-документ (swagger. json) для Java объектов.

может быть List>

какие доступны параметры?

Я пытаюсь использовать 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-spe c -parser, swagger-parser

1 Ответ

0 голосов
/ 16 января 2020

Swagger имеет реализации для всех технологий. https://swagger.io/tools/open-source/open-source-integrations/

и подробности разбора чванства в Java здесь. https://github.com/swagger-api/swagger-parser/tree/v1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...