如何解决通过Java Main class从JAX-RS 1.0注释生成Swagger 2.0规范
我有一个遗留项目,因此我们正在使用JAX-RS 1.x和Ant构建。
我想通过扫描注释生成Swagger规范,但是....我不想要求人们拥有我的Web应用程序的运行实例。取而代之的是,我想通过一个Ant任务来做到这一点,该任务可能只是调用java main
方法,该方法会调用扫描程序并将规范写入输出目录。
我找到了很多有关如何在正在运行的Web应用程序的上下文中生成Swagger Spec的文档,但不是从Java main
应用程序的运行上下文中生成的。
我确实认识到,端点URI在运行中的Web应用程序上下文之外定义不明确,但这与我们无关,因为我们主要对生成文档感兴趣。
解决方法
除了我似乎无法将info
东西放入实际生成的JSON之外,这里有些代码可以工作
final Info info = new Info();
info.setTitle(API_TITLE);
info.setDescription(API_DESCRIPTION);
info.setVersion(API_VERSION);
BeanConfig beanConfig = new BeanConfig();
// TODO Some of these do not seem to end up in the JSON file:
beanConfig.setTitle(API_TITLE);
beanConfig.setDescription(API_DESCRIPTION);
beanConfig.setVersion(API_VERSION);
beanConfig.setSchemes(new String[]{"https"});
beanConfig.setHost(HOST);
beanConfig.setBasePath(BASE_PATH);
beanConfig.setResourcePackage(RESOURCE_PACKAGE);
beanConfig.setScan(true);
beanConfig.setInfo(info); // TODO - This has no effect
Swagger swagger = beanConfig.getSwagger();
swagger.setInfo(info); // TODO - This has no effect
ObjectMapper objectMapper = new ObjectMapper();
File outputFile = new File(SWAGGER_OUTPUT_FILE_PATH + SWAGGER_OUTPUT_FILENAME);
// Force file and directory to be created if it doesn't exist. Otherwise an error will be thrown when we pass
// it to ObjectMapper.
outputFile.getParentFile().mkdirs(); // Force creation of output directory if it doesn't exit
outputFile.createNewFile();
objectMapper.writerWithDefaultPrettyPrinter().writeValue(outputFile,swagger);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。