アプリケーション機能の拡張

Estimated reading time: 1 minute

Ktorアプリケーションはだいたいの場合いくつかのFeatureから構成されています。 Featureは「リクエスト・レスポンスのパイプラインに挿入される機能」として考えることができます。 通常、アプリケーションはDefaultHeaders(ヘッダーをすべての送信レスポンスに付与する機能)、Routing(ルーティングの定義とリクエストのハンドリングを行えるようにする機能)のようないくつかの機能を持っています。

目次:

Feature一覧

インストール

Featureはinstall関数を呼び出すことで、Applicationへとインストールされます。

fun Application.main() {
    install(DefaultHeaders) 
    install(CallLogging)
    install(Routing) { 
        get("/") { 
            call.respondText("Hello, World!")  
        }
    }
}

Routingのような共通的に利用される傾向のあるFeatureはヘルパー関数があります。 それはApplicationの拡張関数として定義されているため、コードをより読みやすく書くことができます。 例えば、以下のように書く代わりに:

    install(Routing) {
        get("/") {
            call.respondText("Hello, World!")
        }
    }

シンプルに以下のように書くことができます:

    routing {
        get("/") {
            call.respondText("Hello, World!")
        }
    }

ビルトインFeature

Ktorには、アプリケーションにインストール可能なたくさんの既製Featureがあります:

いくつかのFeatureは追加の依存関係のプロジェクトへの追加を必要とします。詳細はFeatureページをご覧ください。

カスタムFeature

あなた自身のFeatureを開発し、Ktorアプリケーション間でそれを使いまわすことができます。 発展的なFeaturesをご覧ください。