簡介
本文主要介紹將以上三者組合徐裸,搭建簡單的web服務器拴念,并導出Human Readable的Restful API.
https://github.com/XiaoHanChina/SpringBootSwagger
一嚣镜、Eclipse
只要搭建好平時的Eclipse、Java的開發(fā)環(huán)境即可施敢。
二曹傀、Spring Boot
1.搭建Spring Boot環(huán)境
在eclipse中辐脖,Help - Eclipse Marketplace. 搜索Spring Tools,安裝即可.
2.創(chuàng)建SpringBoot項目 Quick Start
New Project - Spring - Spring Started Project, 然后根據(jù)步驟填寫包名等信息,Dependencies選擇Web(帶有Tomcat的Spring MVC項目)即可皆愉。
如果你之前的SpringBoot的Version是早期版本嗜价,但是上面這個界面顯示的是較新的版本導致你無法創(chuàng)建出完整的項目,提示pom.xml有錯誤亥啦。則右鍵項目Maven install炭剪,他會幫你下載需要的包练链,然后右鍵項目Maven update Project即可翔脱。
3.編寫簡單的接口
新建WelcomController
在Application中添加Hello world接口,在對應的方法上加上RequestMapping
的注解媒鼓,在Application上添加RestController
的注解届吁。(這里在Application上添加@RequestMapping("/hxs")
表明本類的所有方法都在/hxs/路徑下)
@RequestMapping("/hxs")
@RestController
@SpringBootApplication
public class JianShuDemoApplication {
public static void main(String[] args) {
SpringApplication.run(JianShuDemoApplication.class, args);
}
@RequestMapping("/")//Get any visitation by this route, no matter GET, POST, DELETE, etc.
public String hello() {
System.out.println("Got one visitation.");
return "Hello world!";
}
}
測試SpringBoot
在Application上,右擊绿鸣,Run As - Spring Boot App.它就運行在本機的8080端口上疚沐,測試地址http://localhost:8080/hxs/,同時你的Eclipse的 控制臺也會輸出Got one visitation.
三潮模、添加Swagger到項目中 官網(wǎng)
pom.xml中添加Springfox依賴
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
<scope>compile</scope>
</dependency>
pom.xml中添加SwaggerUI依賴
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
<scope>compile</scope>
</dependency>
配置Swagger亮蛔,在Application中添加Dockey
Application添加@EnableSwagger2
注解,類種添加Dockey Bean
擎厢。(regex
方法不能通過自動導包導入究流,需要添加靜態(tài)依賴)
import static springfox.documentation.builders.PathSelectors.regex;
···
@RequestMapping("/hxs")
@RestController
@EnableSwagger2
@SpringBootApplication
public class JianShuDemoApplication {
...
@Bean
public Docket demoApi() {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("com.hxs.demo"))
.paths(regex("/hxs.*")).build();
}
}
獲取Swagger json
直接訪問默認地址http://localhost:8080/v2/api-docs
獲取SwaggerUI
訪問默認地址http://localhost:8080/swagger-ui.html, 點擊jian-shu-demo-application
即可展開看到所有的API地址,并可以測試
四动遭、進階篇芬探,接口注釋及復雜API
添加API簡介
Docket
提供了apiInfo
方法供我們填寫一些API的簡介、作者聯(lián)系方式等簡單信息厘惦。
首先在Application
中添加meataData
方法偷仿,返回ApiInfo(String title, String description, String version, String termsOfServiceUrl, Contact contact, String license, String licenseUrl)
private ApiInfo metaData() {
ApiInfo apiInfo = new ApiInfo(
"Spring Boot REST API Demo by hxs",
"Spring Boot REST API for Simple Demo",
"1.0",
"termsOfServiceUrl",
new Contact("Xingsheng Han", "https://github.com/XiaoHanChina/SpringBootSwagger",
"xingsheng_han@163.com"),
"Apache License Version 2.0",
"https://www.apache.org/licenses/LICENSE-2.0");
return apiInfo;
}
然后在Docket Bean
中添加
@Bean
public Docket demoApi() {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("com.hxs.demo"))
.paths(regex("/hxs.*"))
.build()
.apiInfo(metaData());
}
重新運行,訪問http://localhost:8080/swagger-ui.html即可看到API的簡介宵蕉,并可以通過Contact the developer
給開發(fā)者發(fā)郵件
不同類型的請求方式
參數(shù)酝静、返回值描述
Model
參考資料
Spring Swagger Quick Start: https://springframework.guru/spring-boot-restful-api-documentation-with-swagger-2/
源碼: https://github.com/XiaoHanChina/SpringBootSwagger
Springfox Java docs: https://springfox.github.io/springfox/javadoc/current/