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
プロパティは非推奨になりました。
get("/hello") {
val originHost = call.request.origin.host
val originPort = call.request.origin.port
}
代わりにRequestConnectionPoint.serverHost
とRequestConnectionPoint.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をターゲットとするクライアントエンジンに対して、明示的に有効にする必要がないことを意味します。