Skip to content

2.0.x から 2.2.x への移行

このガイドでは、Ktor アプリケーションを 2.0.x バージョンから 2.2.x に移行する方法について説明します。

WARNING 非推奨(deprecation)レベルでマークされた API は、3.0.0 リリースまで引き続き動作します。 非推奨レベルの詳細については、Deprecated を参照してください。

Ktor サーバー

クッキー

v2.2.0 以降、レスポンスクッキーの設定に関連する以下の API メンバーが変更されました:

  • append 関数に渡される maxAge パラメーターの型が Int から Long に変更されました。
  • appendExpired 関数は非推奨になりました。代わりに expires パラメーターを指定した append 関数を使用してください。

リクエストのアドレス情報

2.2.0 バージョン以降、リクエストが行われたホスト名/ポートを取得するために使用される RequestConnectionPoint.host プロパティおよび RequestConnectionPoint.port プロパティは非推奨となりました。

kotlin
get("/hello") {
    val originHost = call.request.origin.host
    val originPort = call.request.origin.port
}

代わりに RequestConnectionPoint.serverHostRequestConnectionPoint.serverPort を使用してください。 また、リクエストを受信したホスト名/ポートを返す localHost/localPort プロパティも追加されました。 詳細は オリジナルのリクエスト情報 を参照してください。

設定の統合

v2.2.0 より前では、アプリケーション設定を統合するために List<ApplicationConfig>.merge() 関数が使用されていました。 両方の設定に同じキーがある場合、結果の設定は最初の設定の値を取ります。 このリリースでは、この動作を改善するために以下の API が導入されました:

  • public fun ApplicationConfig.withFallback(other: ApplicationConfig): ApplicationConfig: この関数は merge() と同様に動作し、最初の設定の値を取ります。
  • public fun ApplicationConfig.mergeWith(other: ApplicationConfig): ApplicationConfig: 結果の設定は 2 番目の設定の値を取ります。

Ktor クライアント

キャッシュ: 永続ストレージ

v2.2.0 以降、レスポンスのキャッシュに関連する以下の API は非推奨になりました:

  • HttpCacheStorage クラスは CacheStorage インターフェースに置き換えられました。これを使用して、必要なプラットフォーム用の永続ストレージを実装できます。
  • publicStorage/privateStorage プロパティは、CacheStorage インスタンスを受け取る対応する関数に置き換えられました。

カスタムプラグイン

2.2.0 リリース以降、Ktor はカスタムクライアントプラグインを作成するための新しい API を提供しています。 詳細は カスタムクライアントプラグイン を参照してください。

新しいメモリモデル

v2.2.0 では、Ktor は Kotlin 1.7.20 バージョンを使用しており、このバージョンでは新しい Kotlin/Native メモリモデルがデフォルトで有効になっています。 つまり、Native サーバーKotlin/Native をターゲットとするクライアントエンジンに対して、明示的に有効にする必要はありません。