一、Swagger 簡介
Swagger是一個開源的東西集,用於計劃、構建、記錄跟利用RESTful Web效勞。它容許開辟者經由過程簡單的注釋跟設置主動生成具體的API文檔,並供給了一個互動式的UI界面來測試API。Swagger的核心是OpenAPI Specification(OAS),它定義了API的構造、參數、呼應等信息。
二、Swagger 的重要組件
- Swagger註解:經由過程在API的代碼中增加Swagger註解,開辟者可能描述API的各個方面,比方URI道路、HTTP方法、懇求參數、呼應範例等。
- Swagger UI:一個基於HTML跟JavaScript的前端庫,用於經由過程Swagger註解生成可視化的API文檔跟互動式測試界面。
- Swagger Editor:一個在線編輯器,開辟人員可能在其中編寫Swagger註解,並即時檢查API文檔的預覽後果。
三、在 Spring Boot 項目中集成 Swagger
1. 增加依附
在Spring Boot項目標pom.xml
中增加以下依附:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
2. 設置 Swagger
創建一個設置類,用於啟用Swagger2:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo"))
.build();
}
}
3. 拜訪 Swagger UI
在Spring Boot利用啟動後,拜訪http://localhost:8080/swagger-ui.html
,你將看到Swagger UI的界面,可能在這裡檢查API文檔並停止測試。
四、利用 Swagger 註解
Swagger 供給了一系列註解來描述API。以下是一些常用的註解:
@Api
:用於描述全部API,可能設置標題、描述等。@ApiOperation
:用於描述一個方法,可能設置操縱稱號、描述等。@ApiParam
:用於描述參數,可能設置參數稱號、描述、範例等。@ApiResponse
:用於描述呼應,可能設置狀況碼、描述、呼應類等。
示例代碼
@Api(tags = "用戶管理")
@RestController
@RequestMapping("/users")
public class UserController {
@ApiOperation(value = "獲取用戶信息", notes = "根據用戶ID獲取用戶信息")
@GetMapping("/{id}")
public ResponseEntity<User> getUser(@ApiParam(name = "id", value = "用戶ID", required = true) @PathVariable Long id) {
User user = userService.getUserById(id);
return ResponseEntity.ok(user);
}
@ApiOperation(value = "創建用戶", notes = "創建一個新的用戶")
@PostMapping("/")
public ResponseEntity<User> createUser(@RequestBody User user) {
User createdUser = userService.createUser(user);
return ResponseEntity.ok(createdUser);
}
}
五、實戰示例
以下是一個簡單的實戰示例,演示怎樣利用 Swagger 主動生成 API 文檔:
- 創建一個 Spring Boot 項目。
- 增加 Swagger 依附。
- 創建一個設置類來啟用 Swagger。
- 創建一個把持器,並利用 Swagger 註解來描述 API。
- 啟動利用並拜訪
http://localhost:8080/swagger-ui.html
。
六、總結
經由過程利用 Swagger,開辟者可能輕鬆地生成跟保護API文檔。Swagger 供給了豐富的功能跟易用的界面,幫助開辟者進步開辟效力,增加文檔編寫跟保護的任務量。