クライアントの依存関係の追加
プロジェクトで Ktor HTTP クライアントを使用するには、リポジトリを構成し、以下の依存関係を追加する必要があります:
ktor-client-coreには Ktor クライアントのコア機能が含まれています。エンジンはネットワークリクエストの処理に使用されます。 特定のプラットフォームでは、ネットワークリクエストを処理するために特定のエンジンが必要になる場合があることに注意してください。
(オプション) ロギング依存関係
構造化され、柔軟なロギング機能を実現するためのロギングフレームワークを提供します。
(オプション) プラグイン依存関係
プラグインは、特定の機能でクライアントを拡張するために使用されます。
Ktor の依存関係を追加する前に、このプロジェクトのリポジトリを構成する必要があります:
Production
Ktor の製品リリース(Production releases)は、Maven Central リポジトリで入手可能です。 ビルドスクリプトで次のようにこのリポジトリを宣言できます:
KotlinGroovyNOTE
プロジェクトは Super POM からセントラルリポジトリを継承しているため、
pom.xml ファイルに Maven Central リポジトリを追加する必要はありません。Early Access Program (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.3.3)に置き換えることができます。
マルチプラットフォーム
マルチプラットフォームプロジェクトの場合、gradle/libs.versions.toml ファイルで Ktor バージョンと ktor-client-core アーティファクトを定義できます:
[versions]
ktor = "3.4.0"
[libraries]
ktor-client-core = { module = "io.ktor:ktor-client-core", 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.4.0"
[libraries]
ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", 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 はデフォルトで no-operation (NOP) 実装になり、実質的にロギングが無効になります。
ロギングを有効にするには、Logback などの必要な SLF4J 実装を含むアーティファクトを含めます:
Ktor でのロギングの詳細については、Ktor Client でのロギングを参照してください。
プラグイン依存関係
Ktor では、認可やシリアライゼーションなど、デフォルトでは利用できない追加のクライアント機能(プラグイン)を使用できます。その一部は個別のアーティファクトで提供されています。必要なプラグインのトピックから、どの依存関係が必要かを確認できます。
マルチプラットフォームプロジェクトの場合、プラグインの依存関係は
commonMainソースセットに追加する必要があります。一部のプラグインには特定のプラットフォームに対する制限がある場合があることに注意してください。
Ktor バージョンの一貫性の確保
Ktor BOM 依存関係の使用
Ktor BOM を使用すると、依存関係ごとにバージョンを個別に指定することなく、すべての Ktor モジュールが同じ一貫したバージョンを使用することを保証できます。
Ktor BOM の依存関係を追加するには、ビルドスクリプトで次のように宣言します:
公開されているバージョンカタログを使用して、Ktor の依存関係の宣言を一元化することもできます。 このアプローチには以下の利点があります:
- 独自のカタログで Ktor のバージョンを手動で宣言する必要がなくなります。
- すべての Ktor モジュールを単一のネームスペースの下で公開します。
カタログを宣言するには、
その後、カタログ名を参照することで、モジュールの
