Skip to content

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

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

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

Ktorサーバー

Cookie

v2.2.0では、応答Cookieの設定に関連する以下の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をターゲットとするクライアントエンジンに対して、明示的に有効にする必要がないことを意味します。