我正在尝试让Swagger自动生成我的REST API文档,但我只得到了部分结果。
我正在使用Resteasy。我添加了Maven Swagger依赖项。
似乎Swagger无法构建REST文档,即使我的REST端点是可访问的并添加到Swagger资源列表中。
可能出了什么问题?
谢谢
朱利奥
更新:我检查了Swagger初始化方法BeanConfig.classes(),我的REST类被正确发现。
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-jaxrs</artifactId>
<version>1.5.3</version>
</dependency>
然后我配置了我的应用程序对象
package com.myapp.init;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import io.swagger.jaxrs.config.BeanConfig;
import io.swagger.jaxrs.listing.ApiListingResource;
import io.swagger.jaxrs.listing.SwaggerSerializers;
@ApplicationPath("/rest")
public class WebappInit extends Application {
public WebappInit() {
BeanConfig beanConfig = new BeanConfig();
beanConfig.setVersion("1.0.0");
beanConfig.setSchemes(new String[]{"http"});
beanConfig.setHost("theIP:8080");
beanConfig.setBasePath("/myapp/rest/");
beanConfig.setResourcePackage("the.resource.package");
beanConfig.setScan(true);
beanConfig.setPrettyPrint(true);
}
public Set<Class<?>> getClasses() {
Set<Class<?>> s = new HashSet<Class<?>>();
// here I add my REST WSs
s.add(ApiListingResource.class);
s.add(SwaggerSerializers.class);
return s;
}
}
然后我在Wildfly 9服务器上运行Web应用程序,并转到URL http://localhost:8080/myapp/rest/swagger.json
。这是我得到的结果。
{
swagger: "2.0",
info: {
version: "1.0.0"
},
host: "10.17.36.215:8080",
basePath: "/devops/rest/",
schemes: [
"http"
]
}
似乎Swagger无法构建REST文档,即使我的REST端点是可访问的并添加到Swagger资源列表中。
可能出了什么问题?
谢谢
朱利奥
更新:我检查了Swagger初始化方法BeanConfig.classes(),我的REST类被正确发现。
WebappInit
类没有任何标记为JAXRS注解的方法。 - AlexRApiListingResource
服务?使用像/rest/listing
这样的URL吗? - AlexRApplication
类的JAX-RS应用程序进行了设置:https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-JAX-RS-Project-Setup-1.5.X - gvdm