OpenAPI 3.0(以前稱為Swagger)是一個用於描述和文檔化RESTful Web API的標準規範。它提供了一種標準的方式來定義API的結構、端點、輸入參數、輸出格式等信息,以便開發人員、客戶端應用程式和其他相關方能夠更容易地理解和使用API。
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.1.0</version>
</dependency>
新增完依賴後他就會自動生成這個專案的API文件,可以在瀏覽器打
http://localhost:8080/api-docs 或是 http://localhost:8080/api-docs.yaml 查看
如上圖所示,可觀性非常差,這時我們叫要與Swagger UI去做結合
OpenAPI 3.0可以視為Swagger的升級版所以已經內建在你面了
我們只需要在瀏覽器打
http://localhost:8080/swagger-ui/index.html
# 開啟或關閉Swagger UI
springdoc.swagger-ui.enabled=true
# Swagger UI的路徑
springdoc.swagger-ui.path=/swagger-ui.html
# API文檔的URL,默認為"/v3/api-docs"
springdoc.api-docs.path=/v3/api-docs
#“alpha”(按路徑字母數字排序)、“method”(按 HTTP 方法排序)
springdoc.swagger-ui.operations-sorter=method
用來配置整個OpenAPI規範。這個註解位於你的主要應用程序類上,用於定義全局的OpenAPI信息,包括標題、描述、版本等。
@OpenAPIDefinition
@Configuration
public class SpringDocConfig {
@Bean
public OpenAPI baseOpenAPI() {
final String securitySchemeName = "bearerAuth";
return new OpenAPI()
.info(
new Info()
.title("API幫助文件")
.version("v0.0.1")
.description("SpringBoot 3.x application")
)
.addSecurityItem(
new SecurityRequirement()
.addList(securitySchemeName)
)
.components(
new Components()
.addSecuritySchemes(
securitySchemeName,
new SecurityScheme()
.name(securitySchemeName)
.type(SecurityScheme.Type.HTTP)
.scheme("bearer")
.bearerFormat("JWT")
)
);
}
}
.info(...):設置 API 的基本信息,包括標題、版本和描述。
.addSecurityItem(...):添加一個安全需求,這裡使用安全方案的名稱來建立一個需求。
.components(...):添加 OpenAPI 中的元件,這裡是安全方案的定義。你定義了一個名為 "bearerAuth" 的安全方案,它是一個 HTTP 型安全方案,用於 JWT 身份驗證。
用於組織和分類 API 操作。
可以將多個操作標記為相同的標籤,以便更容易地在 API 說明中進行分類和導航。
可以用於生成 API 說明中的標籤部分,以幫助開發人員快速找到相關操作。
用於定義 API 操作(HTTP 請求),例如 GET、POST、PUT 或 DELETE。
可以指定操作的路徑、描述、參數、輸出等細節。
通常用於生成 API 說明中的操作部分,以幫助開發人員了解如何使用這些操作。
用於定義數據模型或對象的結構,例如輸入參數或返回值。
可以指定數據類型、屬性、描述和驗證規則。
可以用於生成 API 說明中的數據模型部分,以幫助開發人員了解數據的結構。