首页 > 代码库 > 关于api接口文档RAP和swagger
关于api接口文档RAP和swagger
前言:
在之前的项目中用了将近一年的RAP,RAP是由阿里开源出来的,非常好用。github地址:https://github.com/thx/RAP。
当初在用此工具时,项目成员需要在接口文档在所改动后,发邮件到项目组成员,由于rap当时没有此功能,所以还下载源码,增加了发邮件功能。
将此功能代码commit到了社区,好像社区没有接纳合入。
后来使用了一年后,发现了swagger似乎使用很方便,直接跟代码进行结合,需要重新使用其他工具进行配合了。
所以以下时对swagger的spring集成说明。
swagger集成spring说明:
如果是在springboot集成swagger是非常方便和简单的,在网上一搜,或者到官网一看就明白了,这里不在赘述。
以下主要是自己集成到springmvc的改造点:
1、pom.xm文件,需要增加以下的依赖:
版本为:
<style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #4e9192 } span.s1 { color: #000000 } span.s2 { color: #009193 } span.Apple-tab-span { white-space: pre }</style><jackson-version>2.5.0</jackson-version>
<swagger-springmvc-version>1.0.2</swagger-springmvc-version>
增加的依赖为,:
<style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #4f76cb } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #4e9192 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco } p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px } span.s1 { color: #000000 } span.s2 { color: #009193 } span.s3 { color: #4e9192 } span.s4 { text-decoration: underline } span.s5 { text-decoration: underline; color: #000000 } span.Apple-tab-span { white-space: pre }</style><!-- 自动生成接口文档工具 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger-version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger-version}</version>
</dependency>
<!-- 自动生成接口文档工具 -->
<!-- 集成swagger2需要用到 一般都用fastJson,但是swagger是用到jackson的-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson-version}</version>
</dependency>
<!-- 集成swagger2需要用到 -->
2.增加一个swagger的配置文件:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* Swagger接口自动生成工具的配置
*
* @author liuhangjun
* @date 2017-01-22
*/
@Configuration
@EnableWebMvc
@EnableSwagger2
@ComponentScan("com.gradven.portalapi.controller")
public class SwaggerConfig extends WebMvcConfigurerAdapter {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("com.gradven.portalapi.controller")).build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
// 页面标题
.title("api门户 使用 Swagger2 构建RESTful API")
// 创建人
.contact(new Contact("gradven", null, "xxxxxxx@126.com"))
// 版本号
.version("1.0")
// 描述
.description("门户接口").build();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
3.在spring的配置文件中将以上这个类进行注入:
<style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #4f76cb } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3933ff } span.s1 { color: #000000 } span.s2 { color: #009193 } span.s3 { color: #4e9192 } span.s4 { color: #932192 } span.Apple-tab-span { white-space: pre }</style><!-- swagger 配置 -->
<bean class="com.gradven.portalapi.commons.config.SwaggerConfig"/>
4.编写controller,访问swagger:
只要在com.gradven.portalapi.controller这个包下,编写controller,那么再访问http://localhost:port/swagger-ui.htm就可以看到接口了。
关于api接口文档RAP和swagger