クライアントの依存関係を追加する
プロジェクトでKtor HTTPクライアントを使用するには、リポジトリを設定し、以下の依存関係を追加する必要があります。
ktor-client-core
には Ktor クライアントのコア機能が含まれています。エンジンはネットワークリクエストを処理するために使用されます。 特定のプラットフォームでは、ネットワークリクエストを処理する特定のエンジンが必要になる場合があることに注意してください。
(任意) ロギング依存関係
構造化された柔軟なロギング機能を有効にするためのロギングフレームワークを提供します。
(任意) プラグイン依存関係
プラグインは、クライアントを特定の機能で拡張するために使用されます。
Ktor の依存関係を追加する前に、このプロジェクトのリポジトリを設定する必要があります。
本番環境
Ktor の本番リリースは Maven セントラルリポジトリで入手できます。 このリポジトリは、ビルドスクリプトで次のように宣言できます。
KotlinGroovyNOTE
プロジェクトが Super POM からセントラルリポジトリを継承しているため、
pom.xml ファイルに Maven セントラルリポジトリを追加する必要はありません。早期アクセスプログラム (EAP)
Ktor の EAP バージョンにアクセスするには、Space リポジトリを参照する必要があります。
KotlinGroovyXMLKtor の EAP は、Kotlin dev リポジトリを必要とする場合があることに注意してください。
KotlinGroovyXML
依存関係を追加する
異なるプラットフォーム向けに、Ktor は
-jvm
や-js
などのサフィックスを持つプラットフォーム固有のアーティファクト(例:ktor-client-core-jvm
)を提供しています。Gradle は特定のプラットフォームに適したアーティファクトを自動的に解決しますが、Maven はこの機能をサポートしていません。つまり、Maven の場合は、プラットフォーム固有のサフィックスを手動で追加する必要があります。
クライアント依存関係
主要なクライアント機能は ktor-client-core
アーティファクトで利用できます。ビルドシステムに応じて、次のように追加できます。
$ktor_version
を必要な Ktor バージョンに置き換えることができます。例: 3.2.3
。
マルチプラットフォーム
マルチプラットフォームプロジェクトの場合、Ktor のバージョンと ktor-client-core
アーティファクトを gradle/libs.versions.toml
ファイルで定義できます。
[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-core
を commonMain
ソースセットへの依存関係として追加します。
sourceSets {
commonMain.dependencies {
implementation(libs.ktor.client.core)
}
}
エンジン依存関係
エンジンはネットワークリクエストの処理を担当します。Apache、CIO、Android、iOS など、さまざまなプラットフォームで利用可能なクライアントエンジンがあります。たとえば、CIO
エンジンの依存関係は次のように追加できます。
マルチプラットフォーム
マルチプラットフォームプロジェクトの場合、必要なエンジンの依存関係を対応するソースセットに追加する必要があります。
たとえば、Android 用の OkHttp
エンジン依存関係を追加するには、まず gradle/libs.versions.toml
ファイルで Ktor のバージョンと ktor-client-okhttp
アーティファクトを定義します。
[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-okhttp
を androidMain
ソースセットへの依存関係として追加します。
sourceSets {
androidMain.dependencies {
implementation(libs.ktor.client.okhttp)
}
}
特定のエンジンに必要な依存関係の完全なリストについては、エンジンの依存関係を追加するを参照してください。
ロギング依存関係
JVM では、Ktor はロギングの抽象化レイヤーとして Simple Logging Facade for Java (SLF4J) を使用します。SLF4J はロギング API を基盤となるロギング実装から切り離し、 アプリケーションの要件に最適なロギングフレームワークを統合できるようにします。 一般的な選択肢には Logback や Log4j があります。フレームワークが提供されない場合、SLF4J はデフォルトで 何もしない (NOP) 実装になり、実質的にロギングが無効になります。
ロギングを有効にするには、Logback など、必要な SLF4J 実装を含むアーティファクトを含めます。
Ktor でのロギングの詳細については、Ktor クライアントでのロギングを参照してください。
プラグイン依存関係
Ktor では、認証やシリアライズなど、デフォルトでは利用できない追加のクライアント機能(プラグイン)を使用できます。これらのプラグインの一部は、個別のアーティファクトとして提供されています。必要なプラグインのトピックから、必要な依存関係を確認できます。
マルチプラットフォームプロジェクトの場合、プラグインの依存関係は
commonMain
ソースセットに追加する必要があります。一部のプラグインには、特定のプラットフォームで制限がある場合があることに注意してください。
Ktor のバージョンの一貫性を確保する
Ktor BOM 依存関係の使用
Ktor BOM を使用すると、各依存関係のバージョンを個別に指定することなく、すべての Ktor モジュールが同じ一貫したバージョンを使用していることを保証できます。
Ktor BOM 依存関係を追加するには、ビルドスクリプトで次のように宣言します。
公開されたバージョンカタログを使用することで、Ktor の依存関係宣言を一元化することもできます。 このアプローチには、以下の利点があります。
- 独自のカタログで Ktor のバージョンを手動で宣言する必要がなくなります。
- すべての Ktor モジュールを単一のネームスペースの下で公開します。
カタログを宣言するには、
その後、モジュールの