Skip to content

クライアントの依存関係を追加する

プロジェクトでKtor HTTPクライアントを使用するには、リポジトリを設定し、以下の依存関係を追加する必要があります。

  • ktor-client-core

    ktor-client-core には Ktor クライアントのコア機能が含まれています。

  • エンジン依存関係

    エンジンはネットワークリクエストを処理するために使用されます。 特定のプラットフォームでは、ネットワークリクエストを処理する特定のエンジンが必要になる場合があることに注意してください。

  • (任意) ロギング依存関係

    構造化された柔軟なロギング機能を有効にするためのロギングフレームワークを提供します。

  • (任意) プラグイン依存関係

    プラグインは、クライアントを特定の機能で拡張するために使用されます。

Ktor の依存関係を追加する前に、このプロジェクトのリポジトリを設定する必要があります。

  • 本番環境

    Ktor の本番リリースは Maven セントラルリポジトリで入手できます。 このリポジトリは、ビルドスクリプトで次のように宣言できます。

    Kotlin
    Groovy

    NOTE

    プロジェクトが Super POM からセントラルリポジトリを継承しているため、pom.xml ファイルに Maven セントラルリポジトリを追加する必要はありません。

  • 早期アクセスプログラム (EAP)

    Ktor の EAP バージョンにアクセスするには、Space リポジトリを参照する必要があります。

    Kotlin
    Groovy
    XML

    Ktor の EAP は、Kotlin dev リポジトリを必要とする場合があることに注意してください。

    Kotlin
    Groovy
    XML

依存関係を追加する

異なるプラットフォーム向けに、Ktor は -jvm-js などのサフィックスを持つプラットフォーム固有のアーティファクト(例: ktor-client-core-jvm)を提供しています。Gradle は特定のプラットフォームに適したアーティファクトを自動的に解決しますが、Maven はこの機能をサポートしていません。つまり、Maven の場合は、プラットフォーム固有のサフィックスを手動で追加する必要があります。

クライアント依存関係

主要なクライアント機能は ktor-client-core アーティファクトで利用できます。ビルドシステムに応じて、次のように追加できます。

Kotlin
Groovy
XML

$ktor_version を必要な Ktor バージョンに置き換えることができます。例: 3.2.3

マルチプラットフォーム

マルチプラットフォームプロジェクトの場合、Ktor のバージョンと ktor-client-core アーティファクトを gradle/libs.versions.toml ファイルで定義できます。

kotlin
[versions]
ktor = "3.2.3"
[libraries]
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }

次に、ktor-client-corecommonMain ソースセットへの依存関係として追加します。

kotlin
sourceSets {
    commonMain.dependencies {
        implementation(libs.ktor.client.core)
    }
}

エンジン依存関係

エンジンはネットワークリクエストの処理を担当します。Apache、CIO、Android、iOS など、さまざまなプラットフォームで利用可能なクライアントエンジンがあります。たとえば、CIO エンジンの依存関係は次のように追加できます。

Kotlin
Groovy
XML

マルチプラットフォーム

マルチプラットフォームプロジェクトの場合、必要なエンジンの依存関係を対応するソースセットに追加する必要があります。

たとえば、Android 用の OkHttp エンジン依存関係を追加するには、まず gradle/libs.versions.toml ファイルで Ktor のバージョンと ktor-client-okhttp アーティファクトを定義します。

kotlin
[versions]
ktor = "3.2.3"
[libraries]
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
ktor-client-darwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor" }

次に、ktor-client-okhttpandroidMain ソースセットへの依存関係として追加します。

kotlin
sourceSets {
    androidMain.dependencies {
        implementation(libs.ktor.client.okhttp)
    }
}

特定のエンジンに必要な依存関係の完全なリストについては、エンジンの依存関係を追加するを参照してください。

ロギング依存関係

JVM では、Ktor はロギングの抽象化レイヤーとして Simple Logging Facade for Java (SLF4J) を使用します。SLF4J はロギング API を基盤となるロギング実装から切り離し、 アプリケーションの要件に最適なロギングフレームワークを統合できるようにします。 一般的な選択肢には LogbackLog4j があります。フレームワークが提供されない場合、SLF4J はデフォルトで 何もしない (NOP) 実装になり、実質的にロギングが無効になります。

ロギングを有効にするには、Logback など、必要な SLF4J 実装を含むアーティファクトを含めます。

Kotlin
Groovy
XML

Ktor でのロギングの詳細については、Ktor クライアントでのロギングを参照してください。

プラグイン依存関係

Ktor では、認証やシリアライズなど、デフォルトでは利用できない追加のクライアント機能(プラグイン)を使用できます。これらのプラグインの一部は、個別のアーティファクトとして提供されています。必要なプラグインのトピックから、必要な依存関係を確認できます。

マルチプラットフォームプロジェクトの場合、プラグインの依存関係は commonMain ソースセットに追加する必要があります。一部のプラグインには、特定のプラットフォームで制限がある場合があることに注意してください。

Ktor のバージョンの一貫性を確保する

Ktor BOM 依存関係の使用

Ktor BOM を使用すると、各依存関係のバージョンを個別に指定することなく、すべての Ktor モジュールが同じ一貫したバージョンを使用していることを保証できます。

Ktor BOM 依存関係を追加するには、ビルドスクリプトで次のように宣言します。

Kotlin
Groovy
XML

公開されたバージョンカタログを使用することで、Ktor の依存関係宣言を一元化することもできます。 このアプローチには、以下の利点があります。

  • 独自のカタログで Ktor のバージョンを手動で宣言する必要がなくなります。
  • すべての Ktor モジュールを単一のネームスペースの下で公開します。

カタログを宣言するには、 settings.gradle.kts で選択した名前でバージョンカタログを作成します。

kotlin

その後、モジュールの build.gradle.kts でカタログ名を参照して依存関係を追加できます。

kotlin