我们已经开始使用REST api开发Web应用程序,我发现Swagger,我真的想要它......但是,我正在努力弄清楚如何在我们的应用程序中添加它。该应用程序被声明为这样(假设):
package hello.world;
import org.glassfish.jersey.server.ResourceConfig;
public class CloudApplication extends ResourceConfig {
public CloudApplication() {
// Add all resources from hello.world
packages("hello.world", "com.fasterxml.jackson.jaxrs");
}
}
项目有一个像这样的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>hello.world</display-name>
<servlet>
<servlet-name>hello.world.CloudApplication</servlet-name>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>hello.world.CloudApplication</servlet-name>
<url-pattern>/hw/*</url-pattern>
</servlet-mapping>
</web-app>
我的pom.xml文件包含
...
<dependency>
<groupId>com.wordnik</groupId>
<artifactId>swagger-jaxrs_2.9.1</artifactId>
<scope>compile</scope>
<version>1.3.0</version>
</dependency>
...
查看https://github.com/wordnik/swagger-core/tree/master/samples,我找到了所有不同的设置,但我无法弄清楚要使用哪个。 https://github.com/wordnik/swagger-core/tree/master/samples/java-jaxrs似乎是正确的,但我可以只用资源配置保持当前的项目结构吗? / samples / java-jaxrs似乎需要很多web.xml的东西......我可以在代码中这样做吗?那里有样品吗?
我对网络应用程序没有那么多经验,但我很乐意让这个Swagger工作。
// Jonas
答案 0 :(得分:1)
我使用一个小的bootstrap类来配置像这样的招摇:
public class SwaggerBootstrap extends HttpServlet {
@Override public void init(ServletConfig servletConfig) {
ConfigFactory.config().setBasePath(basepath);
ConfigFactory.config().setApiPath(apipath);
ConfigFactory.config().setApiVersion(apiversion);
ConfigFactory.config().setSwaggerVersion(com.wordnik.swagger.core.SwaggerSpec.version());
}
}
我的web.xml包含:
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.wordnik.swagger.jersey.listing</param-value>
</init-param>
<servlet>
<servlet-name>JerseyJaxrsConfig</servlet-name>
<servlet-class>com.wordnik.swagger.jersey.config.JerseyJaxrsConfig</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>SwaggerBootstrap</servlet-name>
<servlet-class>my.path.SwaggerBootstrap</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
我的pom提取物在这里:
<dependency>
<groupId>com.wordnik</groupId>
<artifactId>swagger-jersey2-jaxrs_2.10</artifactId>
<version>1.3.4</version>
</dependency>
<dependency>
<groupId>com.wordnik</groupId>
<artifactId>swagger-jaxrs_2.10</artifactId>
<version>1.3.4</version>
</dependency>
祝你好运;)