一、Swagger簡介
Swagger是API設計和文檔工具,它允許Web開發人員設計、構建、文檔化和使用RESTful Web服務。
它是一種非常流行的API開放源碼框架,可用於設計和構建API。Swagger可以描述API,包括標題、URL、描述、支持的協議、請求和響應格式,以及各種其他API信息。
它還可以使用JSON和YAML格式生成互動文檔,並集成了許多流行的Web開發和框架,如Node.js、Java、Scala、Spring MVC和Dropwizard。
二、Swagger的基本組成部分
Swagger由三個基本組成部分組成:Swagger注釋、Swagger UI和Swagger核心。
1、Swagger注釋
Swagger注釋是基於”Swagger規範”的API元數據,它在API源代碼中聲明了API的相關信息,用於生成API文檔和描述。
Swagger注釋是API和文檔之間的橋樑,它有助於開發人員創建易於理解、維護和測試的API。
2、Swagger UI
Swagger UI是用於互動式API文檔的HTML、CSS和JavaScript工具。它不僅可以顯示API文檔,還可以在UI上測試API調用,提供一個前端的測試環境,非常方便。
//示例代碼 <script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.52.1/swagger-ui.min.js" integrity="sha512-vU5bMUIjy3bKf5x/LxkQdBo+9+ERHR4fpRq3tAg/lxR8GVwwRCgRXA3+yned7MCCZVB2tEsyi7n6nq2rRuwtw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
3、Swagger核心
Swagger核心是一組工具和庫,用於生成和解析Swagger規範,包括Swagger Parser、Swagger Codegen和Swagger Editor等。
它可以幫助開發人員生成Swagger規範,還可以生成客戶端和伺服器代碼,以便於開發人員進行快速開發。
//示例代碼 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> <scope>compile</scope> </dependency>
三、Swagger的使用示例
1、Swagger注釋示例
下面是一個使用Swagger注釋的Java示例代碼:
@Api(tags = "用戶管理") @RestController @RequestMapping("/user") public class UserController { @ApiOperation(value = "獲取用戶列表", notes = "獲取所有用戶的列表") @GetMapping("/list") public List list() { return userService.list(); } @ApiOperation(value = "獲取用戶詳情", notes = "根據用戶ID獲取用戶詳情") @GetMapping("/{userId}") public User detail(@ApiParam(value = "用戶ID") @PathVariable("userId") Long userId) { return userService.getById(userId); } @ApiOperation(value = "創建用戶", notes = "根據傳入的參數創建用戶") @PostMapping("/") public User create(@RequestBody User user) { userService.save(user); return user; } @ApiOperation(value = "更新用戶", notes = "根據傳入的參數更新用戶") @PutMapping("/") public User update(@RequestBody User user) { userService.updateById(user); return user; } @ApiOperation(value = "刪除用戶", notes = "根據用戶ID刪除用戶") @DeleteMapping("/{userId}") public void delete(@ApiParam(value = "用戶ID") @PathVariable("userId") Long userId) { userService.removeById(userId); } }
2、Swagger UI 示例
Swagger UI提供了一個互動式介面文檔界面。使用Swagger UI可以實現在線介面測試,方便開發人員進行開發和調試。
下面是一個使用Swagger UI的示例圖:
//示例代碼 http://localhost:8080/swagger-ui.html
3、Swagger Codegen 示例
Swagger Codegen是一個用於生成客戶端和伺服器端代碼的工具。它支持多種編程語言,如Java、PHP、Python等,並且可以根據Swagger規範自動產生代碼。
下面是一個使用Swagger Codegen生成Java客戶端代碼的示例:
//示例代碼 swagger-codegen generate -i swagger.json -l java -o client/java
四、總結
Swagger是一個非常實用的API設計和文檔工具,其使用非常靈活,可以應用於各種編程語言和框架中,尤其是在RESTful API的設計和實現上具有非常大的價值。
通過本文的介紹,相信大家對Swagger有了更深入的了解,可以更好地應用於實際的開發工作中,提高我們的開發效率和代碼質量。
原創文章,作者:AVEB,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/136238.html