三分鐘搞定 Springboot 和Swagger 整合
springboot這裡,我不做講解。
swagger產生背景
在軟體開發行業,管理文件是件頭疼的事。不是文件難於撰寫,而是文件難於維護,因為需求與程式碼會經常變動,尤其在採用敏捷軟體開發模式的系統中。好的工具能夠提高團隊溝通效率,保證系統質量以及縮短專案的交付週期。反之,差的管理工具,會嚴重影響溝通效率,增加系統bug數量,並且延誤產品的上線日期。所以選用合理與合適的軟體開發文件管理工具十分重要,真正讓開發者做到“高高興興地把活幹完,早點回家吃飯打遊戲”。
隨著網際網路技術的發展,現在的網站架構基本都由原來的後端渲染,變成了:前端渲染、先後端分離的形態,而且前端技術和後端技術在各自的道路上越走越遠。
前端和後端的唯一聯絡,變成了API介面;API文件變成了前後端開發人員聯絡的紐帶,變得越來越重要,swagger
就是一款讓你更好的書寫API文件的框架。
swagger簡介
https://petstore.swagger.io/?_ga=2.213559188.1865753670.1532504182-53638988.1532504182#/
Swagger 是一款目前世界最流行的API管理工具。但目前Swagger已經形成一個生態圈,能夠管理API的整個生命週期,從設計、文件到測試與部署。Swagger有幾個重要特性:
- 程式碼侵入式註解
- 遵循YAML文件格式
- 非常適合三端(PC、iOS及Android)的API管理,尤其適合前後端完全分離的架構模式。
- 減少沒有必要的文件,符合敏捷開發理念
- 功能強大
Swagger擁有眾多不同語言和平臺的開源實現與工具,主要有:
- Swagger UI,基於Swagger-compliant API的一套可以展示優美文件的Web應用。
- Swagger Editor,一款以YAML格式編輯與管理API的工具,同時支援JSON格式的文件描述。
- Swagger-Core,Swagger的Java/Scala實現,並已整合 JAX-RS (Jersey, Resteasy, CXF...), Servlets與Play Framework。
- Swagger-JS,Swagger的Javascript版本實現。
實戰開幹
swagger註解說明
具體程式碼
User
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
UserService
@Service
public class UserService {
public User getUser(String username, String password) {
User use = new User();
use.setUsername(username);
use.setPassword(password);
return use;
}
}
UserController
@RestController
@RequestMapping("/user")
@Api("userController相關api")
public class UserController {
@Autowired
private UserService userService;
@ApiOperation("獲取使用者資訊")
@ApiImplicitParams({
@ApiImplicitParam(paramType="header",name="username",dataType="String",required=true,value="使用者的姓名",defaultValue="nishisabi"),
@ApiImplicitParam(paramType="query",name="password",dataType="String",required=true,value="使用者的密碼",defaultValue="nishisabi")
})
@ApiResponses({
@ApiResponse(code=400,message="請求引數沒填好"),
@ApiResponse(code=404,message="請求路徑沒有或頁面跳轉路徑不對")
})
@RequestMapping(value="/getUser",method= RequestMethod.GET)
public User getUser(@RequestHeader("username") String username, @RequestParam("password") String password) {
return userService.getUser(username,password);
}
}
pom.xml檔案
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ioc</groupId>
<artifactId>ioc-swagger</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>ioc-swagger</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</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</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
IocSwaggerApplication
/**
* \引入了一個註解@EnableSwagger2來啟動swagger註解。
* (啟動該註解使得用在controller中的swagger註解生效,
* 覆蓋的範圍由@ComponentScan的配置來指定,
* 這裡預設指定為根路徑”com.xxx.firstboot”下的所有controller)
*/
@EnableSwagger2 //啟動swagger註解
public class IocSwaggerApplication {
public static void main(String[] args) {
SpringApplication.run(IocSwaggerApplication.class, args);
}
}
然後啟動application類,瀏覽器訪問:http://localhost:8080/swagger-ui.html#/
點選介面 user-controller
ok了,溜溜了
相關文章
- SpringBoot整合SwaggerSpring BootSwagger
- SpringBoot整合Swagger2,3分鐘輕鬆入手!Spring BootSwagger
- 一篇文章帶你搞定 SpringBoot 整合 Swagger2Spring BootSwagger
- 07SpringBoot整合SwaggerSpring BootSwagger
- SpringBoot整合Swagger-UISpring BootSwaggerUI
- springboot整合swagger2Spring BootSwagger
- springboot整合swagger遇到的坑Spring BootSwagger
- springboot3.2.3如何整合swaggerSpring BootSwagger
- SpringBoot學習之整合SwaggerSpring BootSwagger
- SpringBoot整合Swagger+Knife4jSpring BootSwagger
- SpringBoot整合Swagger2及使用Spring BootSwagger
- 教你如何搞定springboot整合kafkaSpring BootKafka
- (九) SpringBoot起飛之路-整合/整合Swagger 2 And 3Spring BootSwagger
- 三分鐘搞定nodejs基礎API之PathNodeJSAPI
- SpringBoot2.3.0整合MyBatis-Plus3.4.0和Swagger3.0Spring BootMyBatisS3Swagger
- springboot整合swagger實戰(基礎版)Spring BootSwagger
- Springboot整合Swagger2無法正常啟動Spring BootSwagger
- springboot整合swagger。完爆前後端除錯Spring BootSwagger後端除錯
- Springboot系列(七) 整合介面文件swagger,使用,測試Spring BootSwagger
- 記錄springboot 3.3.5 版本整合 swagger +spring security + jwtSpring BootSwaggerJWT
- SpringBoot2.6.x及以上版本整合swagger文件Spring BootSwagger
- 企業級SpringBoot教程(十一)springboot整合swagger2,構建Restful APISpring BootSwaggerRESTAPI
- Spring Boot2 系列教程(十七)SpringBoot 整合 Swagger2Spring BootSwagger
- SpringBoot整合超好用的API視覺化介面工具swaggerSpring BootAPI視覺化Swagger
- springboot引入swaggerSpring BootSwagger
- 使用 HertzBeat 5分鐘搞定 SpringBoot2 監控告警Spring Boot
- SpringBoot整合Swagger2,再也不用維護介面文件了!Spring BootSwagger
- 三分鐘掌控Actor模型和CSP模型模型
- Swagger+SpringBoot整理SwaggerSpring Boot
- Swagger 2.0 整合配置Swagger
- Node express 整合SwaggerExpressSwagger
- Spring Boot整合SwaggerSpring BootSwagger
- SpringBoot整合Kafka和StormSpring BootKafkaORM
- SpringBoot2 整合 Swagger2文件 使用BootstrapUI頁面Spring BootSwaggerUI
- 每天三分半鐘搞定linux基礎知識(19) echo命令實現字串的擷取和替換Linux字串
- springboot和swagger2衝突 Swagger-ui/index.html 404 解決Spring BootSwaggerUIIndexHTML
- 三分鐘建成個人網站,逼格極高(持續整合)網站
- SpringBoot_5_integrate_SwaggerSpring BootSwagger