Swagger UI
所需依賴:io.ktor:ktor-server-swagger
程式碼範例: json-kotlinx-openapi
Ktor 可讓您基於現有的 OpenAPI 規格,為您的專案產生並提供 Swagger UI。 透過 Swagger UI,您可以視覺化並與 API 資源互動。您可以提供現有的 YAML 或 JSON 規格,或者使用 Ktor Gradle 外掛程式的 OpenAPI 擴充功能 產生一個。
新增依賴
提供 Swagger UI 服務需要在建置腳本中新增 ktor-server-swagger artifact:
設定 Swagger UI
若要提供 Swagger UI 服務,您需要呼叫 swaggerUI 方法,該方法會建立一個帶有 Swagger UI 的 GET 端點,位於從 swaggerFile 中的 OpenAPI 規格所呈現的 path:
import io.ktor.server.plugins.swagger.*
// ...
routing {
swaggerUI(path = "swagger", swaggerFile = "openapi/documentation.yaml")
}此方法會嘗試在應用程式資源中尋找 OpenAPI 規格。 否則,它會嘗試使用 java.io.File 從檔案系統讀取 OpenAPI 規格。
您可以選擇在 swaggerUI 區塊內客製化 Swagger UI。 例如,您可以使用另一個 Swagger UI 版本或套用自訂樣式。
routing {
swaggerUI(path = "swagger", swaggerFile = "openapi/documentation.yaml") {
version = "4.15.5"
}
}您現在可以 執行 應用程式並打開 /swagger 頁面,以查看可用的端點並進行測試。
設定 CORS
為了確保您的 API 能與 Swagger UI 良好運作,您需要為 跨來源資源共享 (CORS) 設定一個策略。 下方的範例套用了以下 CORS 設定:
anyHost啟用來自任何主機的跨來源請求;allowHeader允許 內容協商 中使用的Content-Type用戶端標頭。
install(CORS) {
anyHost()
allowHeader(HttpHeaders.ContentType)
}