1 前言
当前,WEB开发前后端分离已经成为了共识,以Java WEB开发为例,前端开发负责HTML/CSS/JavaScript,后端(服务端)负责Java代码;前后端都有自己的开发流程和构建工具,前后端开发交互通过接口完成,最常用的是基于JSON格式的RESTful接口。
Swagger是一种API文档定义工具,非常有利于构建前后端分离开发的契约,便于后端开发者访问测试Controller,也很容易和Spring Boot集成在一起。
Swagger官网:http://swagger.io/
2 pom.xml配置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependencies>
3 配置Swagger
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket someWebApi() {
return new Docket(DocumentationType.SWAGGER_2).groupName("your app name")
.genericModelSubstitutes(DeferredResult.class)
.useDefaultResponseMessages(false).forCodeGeneration(false)
// 过滤的接口
.pathMapping("/").select().paths(Predicates.or(PathSelectors.regex("/.*")))
.build().apiInfo(someWebApiInfo());
}
private ApiInfo someWebApiInfo() {
ApiInfo apiInfo = new ApiInfo(
"your app Web API",// 大标题
"your app Web API",// 小标题
"1.0",// 版本
"service", "someone@some.com",// 作者
"版权所有@xx科技有限公司",// 链接显示文字
""// 网站链接
);
return apiInfo;
}
}
4 编写Controller
@RestController
public class DemoController {
@RequestMapping(value = "/hello.do")
public String hello(){
return "Hello World";
}
}
5 编写Application
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
6 启动访问
地址:http://localhost:8080/swagger-ui.html
Paste_Image.png如下图所示。点开GET方法,执行【Try it out!】即可看到URL和响应返回的Hello World。
Paste_Image.png
网友评论