Ktor
Ktor(英語) は、接続されたシステムを作成するための Web アプリケーションフレームワークです。 これを使用して、サーバー側およびクライアント側のアプリケーションを作成できます。 JVM、JavaScript、Kotlin/Native などの複数のプラットフォームをサポートします。
IntelliJ IDEA は、Ktor プロジェクトを操作するために次の機能を提供します。
新しいプロジェクトを作成するためのウィザード。
Ktor プロジェクトを実行およびデバッグするための専用の実行構成。
プロジェクト全体の ルート間を移動します。
ルートのテストを 生成し、Ktor プラグインのサンプルコードを追加します。
ルート名の補完と名前変更を含む コード編集支援。
OpenAPI 仕様の生成。
プロジェクトの移行を最新の Ktor バージョンに移行する。
新しい Ktor プロジェクトを作成する
'ようこそ' 画面で、 新規プロジェクト をクリックします。
それ以外の場合は、メインメニューの に移動します。
新規プロジェクト ウィザードで、左側のリストから Ktor を選択します。
右側のペインで、次の設定を指定できます。

名前: プロジェクト名を指定します。
ロケーション: プロジェクトのディレクトリを指定します。
ビルドシステム: 目的の ビルドシステム(英語)を選択します。 これは、Kotlin または Groovy DSL を使用する Gradle 、または Maven にすることができます。
Web サイト: パッケージ名の生成に使用するドメインを指定します。
アーティファクト: このフィールドには、生成されたアーティファクト名が表示されます。
Ktor バージョン: 必要な Ktor バージョンを選択します。
エンジン: サーバーの実行に使用する エンジンを選択(英語)します。
構成: サーバーパラメーター コード内、HOCON または Yaml ファイル内(英語)を指定するかどうかを選択します。
サンプルコードの追加 :このオプションを使用すると、プラグイン用のサンプルコードを追加できます。サンプルコードは次のページに追加されます。
次のページでは、 プラグイン(英語)のセットを選択できます。これは、認証、シリアル化とコンテンツエンコーディング、圧縮、Cookie サポートなどの Ktor アプリケーションの一般的な機能を提供するビルドブロックです。

作成 をクリックし、IntelliJ IDEA がプロジェクトを生成して依存関係をインストールするまで待ちます。
Ktor アプリケーションを実行する
サーバー Ktor アプリケーションは、次のいずれかの方法で実行できます。
エディターからアプリケーションを実行するには、次の手順に従います。
main関数の横にあるガターアイコンをクリックし、 実行 'ApplicationKt' を選択します。
IntelliJ IDEA がアプリケーションを実行するまで待ちます。 実行ツールウィンドウに次のメッセージが表示されます。
INFO ktor.application - Responding at http://0.0.0.0:8080
これは、サーバーが http://0.0.0.0:8080 アドレスで要求を受け入れる準備ができていることを意味します。
ナビゲーション
どこでも検索でルートを検索する
どこでも検索を使用してアプリケーション内の特定のルートを見つけるには、以下の手順に従います。
Shift を 2 回押して、検索ウィンドウを開きます。
ルート名の入力を開始します。

検索を絞り込むには、ウィンドウツールバーの フィルター アイコン
をクリックし、 URL を選択します。
ルートとその使用箇所の間を移動する
プロジェクト内のルートとその使用箇所の間を移動するには、次のいずれかを実行します。
キャレットを目的のパスまたは URL に配置し、 Ctrl+B を押します。
Ctrl を押したまま、パスまたは URL の上にマウスを置きます。 URL がハイパーリンクに変わったら、キーを放さずにクリックします。
パスまたは URL の横にある
アイコンをクリックし、ポップアップから 宣言または使用箇所に移動 を選択します。
IntelliJ IDEA は、関連するパス /URL を表示します。

エンドポイントツールウィンドウにルートを表示する
Ktor アプリケーションで定義されているすべての HTTP または WebSocket エンドポイントを表示するには、 エンドポイントツールウィンドウを使用します。
パスの横にある
アイコンをクリックし、ポップアップから モジュールのすべてのエンドポイントを表示 を選択します。

呼び出されたエンドポイントツールウィンドウで、アプリケーションで定義されているすべてのルートを確認できます。

Ktor サーバーが 実行されている場合は、 HTTP クライアントを使用して要求を行い、応答をすぐに確認するか、エディターで開くことができます。

OpenAPI タブで、このルートの OpenAPI 仕様を確認できます。
コードの生成
プラグインのコードを生成する
IntelliJ IDEA を使用すると、 コード補完 popup を使用して Ktor プラグインのコードを生成できます。
モジュール(英語)内にキャレットを配置し、
installの入力を開始して、リストから目的のプラグインを選択します。
Enter を押す。 IntelliJ IDEA は、選択したプラグインのコードを生成し、必要な依存関係をビルドスクリプトに追加します。

HttpClient を生成する
IntelliJ IDEA は、 HttpClient(英語) をプロジェクトにすばやく追加する機能を提供します。
ktor-client と入力し始め、リストからこのアクションを選択して、 Enter を押します。

IntelliJ IDEA は
HttpClientインスタンスを作成し、必要なクライアント依存関係をビルドスクリプトに追加します。
テストの作成
IntelliJ IDEA を使用すると、モジュール、ルートのグループ、個々のルートのテストを生成できます。 この機能は、HTTP エンドポイントと WebSocket エンドポイントの両方でサポートされています。 テストを生成するには、以下の手順に従います。
キャレットを目的のモジュールまたはルートに配置し、 Alt+Enter を押して、次のいずれかのアクションを選択します。
Ktor モジュールのテストを作成
Ktor ルートのテストを作成
Ktor ルートのテストを作成



呼び出されたダイアログで、テストクラス名を指定し、目的のルートを選択し、個々のテスト名を編集できます。

OK をクリックします。
IntelliJ IDEA は、選択したルートのテスト要求を含むテストクラスを作成します。

テスト(英語)から Ktor サーバーをテストする方法を学ぶことができます。
コードの編集
完全なルート名
IntelliJ IDEA を使用すると、ルートの名前を 完成させることができます。
URL を受け入れるパラメーターにキャレットを置き、 Ctrl+Space を押します。 エディターに利用可能なルートが表示されます。

完全な構成プロパティ
プロジェクトが構成を YAML ファイル(英語)に保存する場合、プロパティ名に 自動補完を使用できます。
構成ファイル内の任意の場所にキャレットを置き、 Ctrl+Space を押します。 エディターには、このグループで使用できるすべての構成プロパティが表示されます。

ルートの名前を変更する
IntelliJ IDEA では、 名前変更リファクタリングを使用してルートの名前を変更できます。
ルート名にキャレットを置き、 Shift+F6 を押します。
新しいルート名を指定して、 リファクタリング をクリックします。

アプリケーションモジュールを抽出する
embeddedServer(英語) 内に配置されたコードを別のアプリケーションモジュールに抽出するには、次の手順に従います。
embeddedServer関数呼び出しにキャレットを置き、 Alt+Enter を押します。現在の embeddedServer ブロックからアプリケーションモジュールを抽出する を選択し、 Enter を押します。
表示されたダイアログでモジュール名を指定し、 抽出 をクリックします。 IntelliJ IDEA は
アプリケーションはクラスに拡張機能関数を作成し、この関数への参照をモジュールパラメーターとして渡します。たとえば、次のとおりです。fun main() { embeddedServer(Netty, port = 8080) { routing { get("/") { call.respondText("Hello, world!") } } }.start(wait = true) }fun main() { embeddedServer(Netty, port = 8080, module = Application::module).start(wait = true) } fun Application.module() { routing { get("/") { call.respondText("Hello, world!") } } }
OpenAPI
OpenAPI 仕様 (OAS) は、REST API の記述形式です。 Ktor プラグインは、サーバー側の Ktor アプリケーション用の OpenAPI ドキュメントを生成する機能を提供します。 プラグインは、 文字列パスパターン(英語)または type-safe(英語) ルートの両方を使用して定義されたすべてのアプリケーションエンドポイントの パス を生成します。 より優れた OpenAPI ドキュメントを生成するために、プラグインはサーバーアプリケーションのエンドポイントのコードを分析します。
パス(英語)および クエリ(英語)リクエストパラメーターは、パラメーター型を考慮して パラメーター を生成するために使用されます。
応答 ステータス(英語)、 コンテンツタイプ(英語) 、および ヘッダー(英語)は、 responses を記述するために使用されます。
レスポンスボディ(英語)ハンドラーは、OpenAPI schema を生成するために使用され、可能であれば サンプル も生成されます。 オブジェクトレスポンス(英語)の場合、プラグインは コンポーネント セクションで対応する定義を生成します。
特定のルートのドキュメントコメントはエンドポイントの description として使用されます。
OpenAPI 仕様を生成する
Ktor アプリケーションの OpenAPI 仕様を生成するには、次の手順に従います。
embeddedServer(英語) 関数呼び出しにキャレットを置き、 Alt+Enter を押します。
ポップアップから 現在のモジュールの OpenAPI ドキュメントを生成 を選択し、 Enter を押します。

IntelliJ IDEA が次のパスでアプリケーションリソースに OpenAPI 仕様を生成するまで待ちます: resources/openapi/documentation.yaml 。

OpenAPI のプレビューとアプリケーションのテスト
OpenAPI 仕様をプレビューする に従って、統合された Swagger UI を使用して OpenAPI 仕様をプレビューできます。 生成された Swagger UI を使用して、次のようにアプリケーションのエンドポイントをテストできます。
プレビューで目的のエンドポイントを展開し、リクエストを行います。
HTTP エディターでエンドポイントをテストする
IntelliJ IDEA を使用すると、 コードエディターの HTTP クライアントを使用して HTTP および WebSocket エンドポイントをテストできます。
キャレットを目的のパスに配置し、 Alt+Enter を押して、 Generate request in HTTP Client を選択します。

開いたファイルで、リクエストパラメーターを調整します。

ガターの
をクリックして、リクエストを行います。

プロジェクトの移行
プロジェクトを移行する
IntelliJ IDEA では、次のいずれかの方法で Ktor プロジェクトを最新バージョンに移行できます。
以前の Ktor バージョンを使用するプロジェクトを開く場合、IntelliJ IDEA は、このプロジェクトまたは特定のモジュールを最新バージョンに移行することをお勧めします。

プロジェクト / モジュールを移行するか、 アクション をクリックし て移行レベルを構成するか、移行をキャンセルしてこのポップアップを無効にすることができます。
Ctrl+Shift+A を押し、 Ktor を最新バージョンに移行する アクションを見つけて、 Enter を押します。
移行レベルを構成する
移行レベルを構成するか、移行をまったく無効にするには、 ページの対応するオプションを使用します。