我在我的Tapestry 5.4项目中使用tynamo resteasy。 我想将Swagger合并到其他团队的文档和共享API。 虽然我发现Swagger已经处于RestEasy的项目依赖中,但它无法正常运行"开箱即用"
我已添加
@Api
到"资源" class(位于/rest/
包中)
和
@ApiOperation
方法的GET
我是否需要更改AppModule
或web.xml
才能勾选出虚张声势的用户界面?
我可以在任何地方找到一个例子(github等)吗?
此外,是否可以在localhost/swagger/myendpoint
答案 0 :(得分:2)
看看这个旧提交:https://github.com/tynamo/tapestry-resteasy/commit/9a4c2979fda83900480449f25df8cb5e919e4306
特别注意SwaggerModule。代码相当陈旧,我几乎可以肯定,如果您按原样复制和粘贴它,它将无法开箱即用,但它可以让您非常了解项目之间的连接如何工作和需要的设置。
答案 1 :(得分:1)
这是一步一步的过程:
获得swagger-jaxrs:https://mvnrepository.com/artifact/io.swagger/swagger-jaxrs/1.5.0
在“modules”目录中创建SwaggerModule.java
(例如:com.mysite.mypkg.modules
)
public class SwaggerModule {
@Contribute(SymbolProvider.class)
@ApplicationDefaults
public static void provideSymbols(MappedConfiguration<String, Object> configuration) {
configuration.add(ResteasySymbols.CORS_ENABLED, true);
}
@Contribute(javax.ws.rs.core.Application.class)
public static void contributeApplication(Configuration<Object> singletons) {
singletons.addInstance(io.swagger.jaxrs.listing.ApiListingResource.class);
singletons.addInstance(io.swagger.jaxrs.listing.SwaggerSerializers.class);
}
@Startup
public static void swagger(javax.ws.rs.core.Application application,
BaseURLSource baseURLSource,
@Symbol(InternalConstants.TAPESTRY_APP_PACKAGE_PARAM) String basePackage,
@Symbol(ResteasySymbols.MAPPING_PREFIX) String restPath,
@Symbol(SymbolConstants.APPLICATION_VERSION) String version) {
application.getSingletons();
BeanConfig config = new BeanConfig();
config.setSchemes(new String[]{"http"});
config.setVersion("1.0.2");
config.setHost("localhost:8080");
config.setBasePath("/mysite" + restPath);
config.setTitle("Mysite Rest Documentation");
config.setResourcePackage("com.mysite.mypkg.rest");//where your rest resources are located
config.setScan(true);
}
在AppModule.java上,导入SwaggerModule(Tapestry 5.4)
@ImportModule(SwaggerModule.class)
public class AppModule {...
}
现在可以将swagger.json
和swagger.yaml
视为:
http://localhost:8080/mysite/rest/swagger.json
非常感谢上面的@ascandroli指出了基础知识
答案 2 :(得分:1)
看起来我晚了三年,但是无论如何我都需要对项目进行大刀阔斧的集成,所以我采用了@ascandroli的代码,将其更新为OpenAPI 3.0(swagger core 2.x)并对其进行了大刀阔斧的集成拥有自己的独立子模块,只需添加依赖项,即可为用户开箱即用。细节有点粗略,但是tapestry-resteasy-swagger module source is at github和GAV coordinates for now are org.tynamo:tapestry-resteasy-swagger:0.0.2。如果时间允许,我将添加更多信息,但同时请检查集成测试项目。