我有一個現有的使用REST API的maven項目。我正在嘗試將Swagger與該項目整合在一起。當我運行該項目時,我得到空的Swagger UI頁面。沒有加載API。我哪裏錯了?swagger ui與未顯示API的maven項目集成
的pom.xml
<!-- Swagger -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-jersey2-jaxrs</artifactId>
<version>1.5.16</version>
</dependency>
我使用一個自定義的應用程序類(不web.xml)中
public class MyRestApplication extends ResourceConfig {
public MyRestApplication() {
System.out.println("Entering Custom Application");
property(ServerProperties.BV_SEND_ERROR_IN_RESPONSE, true);
property(ServerProperties.
BV_DISABLE_VALIDATE_ON_EXECUTABLE_OVERRIDE_CHECK, true);
register(RolesAllowedDynamicFeature.class);
register(StorageResource.class);
register(io.swagger.jaxrs.listing.ApiListingResource.class);
register(io.swagger.jaxrs.listing.SwaggerSerializers.class);
}
}
在我StorageResource文件:
@Api(value = "/Person")
@Path("")
public class StorageResource {
static Logger logger =
Logger.getLogger(StorageResource.class.getName());
@PUT
@Path("/person-manager-resource/addPerson")
@Produces("application/json")
@Consumes("application/json")
@ApiOperation(
value = "method api",
notes = "method api notes"
)
public Object addPerson(String reqBody) {
AddPerson add = new AddPerson();
return add.addPerson(reqBody);
}
}
在索引中。 Swagger UI的HTML(從dist文件夾複製到webapp文件夾)
window.onload = function() {
// Build a system
const ui = SwaggerUIBundle({
url: "http://localhost:8080/demographics/dgs/swagger.json",
dom_id: '#swagger-ui',
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout"
})
window.ui = ui
}
我的web.xml文件:
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>in.healthelife.DGS</param-value>
</init-param>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>in.healthelife.DGS.data.MyRestApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/dgs/*</url-pattern>
</servlet-mapping>
我看到'beanConfig.setResourcePackage( 「io.swagger.resources」)獲得;'只是爲了檢查,是'StorageResource'某處這個包'io.swagger.resources'? –
對不起,我很新招搖。 StorageResource包裝在「in.healthelife.DGS.resources」中。 –
這是否解決它或你仍然有問題? –