Swagger與Debian集成的最佳實踐主要包括以下幾個方面:
pom.xml中添加Springfox Swagger2和Swagger UI的依賴包。<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>
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestapi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Swagger test")
.description("API描述")
.version("1.0")
.build();
}
}
/v1。openapi: 3.0.0
info:
title: 電商平臺API
version: 1.0.0
servers:
- url: https://api.example.com/v1
paths:
/products/{id}:
get:
summary: 獲取商品詳情
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: 成功響應
content:
application/json:
schema:
$ref: '#/components/schemas/Product'
components:
schemas:
Product:
type: object
properties:
id:
type: string
name:
type: string
price:
type: number
openapi-generator-cli generate -i api-spec.yaml -g spring -o ./generated-code
swagger-mock-api模擬API服務。const mockApi = require('swagger-mock-api');
mockApi({
swaggerFile: './api-spec.yaml',
port: 3000
});
requests庫進行自動化接口測試。import requests
def test_get_product():
response = requests.get("https://api.example.com/v1/products/123")
assert response.status_code == 200
assert response.json()["name"] == "Laptop"
@RestController
@RequestMapping("/api-docs")
public class ApiDocController {
@GetMapping
public String getApiDocs() {
return openApiDefinition;
}
}
通過以上步驟,可以在Debian系統上成功集成Swagger,并遵循最佳實踐來提高API開發的效率和文檔維護的便捷性。