OpenAPI
必要な依存関係: io.ktor:ktor-server-openapi
コード例: json-kotlinx-openapi
Ktorは、既存のOpenAPI仕様に基づいて、プロジェクトのOpenAPIドキュメントを生成および提供できます。 既存のYAMLまたはJSON仕様を提供することも、Ktor Gradleプラグインの OpenAPI拡張機能を使用して生成することもできます。
依存関係の追加
OpenAPIドキュメントを提供するには、ビルドスクリプトに
ktor-server-openapiアーティファクトを追加する必要があります:KotlinGroovyXMLオプションで、コードジェネレーターをカスタマイズしたい場合は、
swagger-codegen-generators依存関係を追加します:KotlinGroovyXML$swagger_codegen_versionは、必要なswagger-codegen-generatorsアーティファクトのバージョンに置き換えることができます。例:1.0.36。
OpenAPIの設定
OpenAPIドキュメントを提供するには、swaggerFileに配置されたOpenAPI仕様からレンダリングされたドキュメントを含むGETエンドポイントをpathに作成するopenAPIメソッドを呼び出す必要があります:
import io.ktor.server.plugins.openapi.*
// ...
routing {
openAPI(path="openapi", swaggerFile = "openapi/documentation.yaml")
}このメソッドは、アプリケーションリソース内でOpenAPI仕様を検索しようとします。 それ以外の場合は、java.io.Fileを使用してファイルシステムからOpenAPI仕様を読み取ろうとします。
デフォルトでは、ドキュメントはStaticHtml2Codegenを使用して生成されます。 openAPIブロック内で生成設定をカスタマイズできます:
routing {
openAPI(path="openapi", swaggerFile = "openapi/documentation.yaml") {
codegen = StaticHtmlCodegen()
}
}これでアプリケーションを実行し、/openapiページを開いて生成されたドキュメントを確認できます。
