Skip to content
Server Plugin

OpenAPI

必要な依存関係: io.ktor:ktor-server-openapi

コード例: json-kotlinx-openapi

ネイティブサーバー
KtorはKotlin/Nativeをサポートしており、追加のランタイムや仮想マシンなしでサーバーを実行できます。
のサポート: ✖️

Ktorでは、既存のOpenAPI仕様に基づいて、プロジェクトのOpenAPIドキュメントを生成し提供できます。

undefined

依存関係の追加

  • OpenAPIドキュメントを提供するには、ビルドスクリプトにktor-server-openapiアーティファクトを追加する必要があります:

    Kotlin
    Groovy
    XML
  • オプションで、コードジェネレーターをカスタマイズしたい場合は、swagger-codegen-generators依存関係を追加します:

    Kotlin
    Groovy
    XML

    $swagger_codegen_versionは、必要なswagger-codegen-generatorsアーティファクトのバージョンに置き換えることができます。例: 1.0.36

OpenAPIの設定

OpenAPIドキュメントを提供するには、swaggerFileに配置されたOpenAPI仕様からレンダリングされたドキュメントを含むGETエンドポイントをpathに作成するopenAPIメソッドを呼び出す必要があります:

kotlin
import io.ktor.server.plugins.openapi.*

// ...
routing {
    openAPI(path="openapi", swaggerFile = "openapi/documentation.yaml")
}

このメソッドは、アプリケーションリソース内でOpenAPI仕様を検索しようとします。 それ以外の場合は、java.io.Fileを使用してファイルシステムからOpenAPI仕様を読み取ろうとします。

デフォルトでは、ドキュメントはStaticHtml2Codegenを使用して生成されます。 openAPIブロック内で生成設定をカスタマイズできます:

kotlin
routing {
    openAPI(path="openapi", swaggerFile = "openapi/documentation.yaml") {
        codegen = StaticHtmlCodegen()
    }
}

これでアプリケーションを実行し、/openapiページを開いて生成されたドキュメントを確認できます。