Skip to content

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

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 をターゲットとするクライアントエンジンに対して、明示的に有効にする必要はありません。