参看了一下资料,国内的关于Swagger整合Springboot、SpringMVC的和很多。 但是,怎么整合纯Servlet一直没有度娘到。由于项目需要特整理了一个。 自己查查官方资料并整理如下。
参考代码地址: https://github.com/kkman2008/SwaggerServletSample
Swagger官网: https://swagger.io/
步骤1。创建一个简单的maven web-app并在pom.xml中添加以下依赖项
<dependency>
<groupId> com.wordnik </ groupId>
<artifactId> swagger-annotations </ artifactId>
<version> 1.3.11 </ version>
</ dependency>
<dependency>
<groupId> com.wordnik </ groupId>
<artifactId> swagger-servlet_2.10 </ artifactId>
<version> 1.3.13 </ version>
<exclusions>
<exclusion>
<groupId> com.google.guava </ groupId>
<artifactId> guava </ artifactId>
</排除>
</ exclusions>
</ dependency>
<dependency>
<groupId> io.swagger </ groupId>
<artifactId> swagger-servlet </ artifactId>
<version> 1.5.7 </ version>
<exclusions>
<exclusion>
<groupId> com.google.guava </ groupId>
<artifactId> guava </ artifactId>
</ exclusion>
</ exclusions>
</ dependency>
<dependency>
<groupId> com.wordnik </ groupId>
<artifactId> swagger-jersey-jaxrs_2.10 </ artifactId>
<version> 1.3.13 </ version>
</ dependency>
<dependency>
<groupId>com.google.guava </ groupId>
<artifactId> guava </ artifactId>
<version> 19.0 </ version>
</ dependency>
<dependency>
<groupId> com.wordnik </ groupId>
<artifactId> swagger-core_2.10 </ artifactId>
<version> 1.3.13 </ version>
<scope>comiplie</ scope>
</ dependency>
第2步:在web.xml中注册所需的servlet 以处理swagger注释...以及托管swagger文档
一个。昂首注释扫描仪
<! - swagger servlet reader - >
<servlet>
<servlet-name> DefaultServletReaderConfig </ servlet-name>
<servlet-class> com.wordnik.swagger.servlet.config.DefaultServletReaderConfig </ servlet-class>
<init-param>
<param-name> swagger.resource .package </ param-name>
<param-value> servlet.kvn </ param-value>
</ init-param>
<init-param>
<param-name> swagger.api.basepath </ param-name>
< param-value> http:// localhost:8180 / swaggerservlet </ param-value>
</ init-param>
<init-param>
<param-name> api.version </ param-name>
<param-value> 1.0.0 </ param-value>
</ init-param>
<load-on-startup> 1 </ load-on-startup>
</ servlet>
swagger servlet用于托管文档
<! - 用于访问swagger文档的swagger api声明servlet - >
<servlet>
<servlet-name> ApiDeclarationServlet </ servlet-name>
<servlet-class> com.wordnik.swagger.servlet.listing.ApiDeclarationServlet </ servlet-class>
</ servlet>
<servlet-mapping>
<servlet-name> ApiDeclarationServlet </ servlet-name>
<url-pattern> / api-docs / * </ url-pattern>
</ servlet-mapping>
C。和一个带有swagger文档的简单servlet
<servlet>
<servlet-name> MyServlet </ servlet-name>
<display-name> MyServlet </ display-name>
<description> </ description>
<servlet-class> servlet.kvn.MyServlet </ servlet-class>
</ servlet的>
<servlet-mapping>
<servlet-name> MyServlet </ servlet-name>
<url-pattern> / MyServlet </ url-pattern>
</ servlet-mapping>
第3步:带有swagger注释的简单自定义servlet
@Api(value = “/MyServlet”, description = “My Simple Servlet”,produces=”application/json”)
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MyServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
@ApiOperation(
value = “A get operation”,
notes = “A Simple get operation”,
httpMethod = “GET”,nickname=”myservlet”)
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println(“Do Get Method Called.”);
response.getWriter().write(“{status:Sucess fully called get method}”);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().write(“{status:Sucess fully called post method}”);
}
}
步骤4:在任何服务器上构建和部署war文件,并访问http:// localhost:port / api-docs /中的swagger文档