0Pricing
Kotlin Academy · レッスン

Ktorプロジェクトのセットアップ:embeddedServerとApplicationモジュール

Ktorアプリケーションを起動し、Nettyを設定して、アプリケーションモジュールを定義します。

「Ktorプロジェクトのセットアップ:embeddedServerとApplicationモジュール」はCoddyKit上の無料Kotlin Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはKotlin Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Kotlin Academyコースには全4レッスンが含まれています。

Ktorとは

Ktorは、サーバーとクライアントを構築するためのJetBrains製の非同期Kotlinフレームワークです。コルーチンを中心に設計され、プラグインベースで、マジックはありません。必要な機能はすべて明示的にインストールします。Ktorアプリケーションは通常のKotlinプログラムであり、DIコンテナは必要ありません。

Ktorの依存関係の追加

build.gradle.kts に、コアサーバーエンジン(最も一般的なのはNetty)と、Ktorのコアサーバーライブラリを追加します。

dependencies {
    implementation("io.ktor:ktor-server-core:2.3.12")
    implementation("io.ktor:ktor-server-netty:2.3.12")
    implementation("ch.qos.logback:logback-classic:1.5.6") // logging
}

embeddedServer:最小限のエントリーポイント

Ktorサーバーを起動する最も簡単な方法は embeddedServer です。エンジンファクトリ、ポート、設定ブロックを渡します。

import io.ktor.server.engine.*
import io.ktor.server.netty.*
import io.ktor.server.routing.*
import io.ktor.server.response.*

fun main() {
    embeddedServer(Netty, port = 8080) {
        routing {
            get("/") { call.respondText("Hello, Ktor!") }
        }
    }.start(wait = true)
}

アプリケーションモジュール

大規模なプロジェクトでは、設定をモジュールに分割します。モジュールとは、Application に対する拡張関数です。モジュールではプラグインをインストールし、ルートを登録します。これにより、コードベースのテストと組み合わせが容易になります。

fun Application.configureRouting() {
    routing {
        get("/health") { call.respondText("OK") }
    }
}

fun Application.configureSerialization() {
    install(ContentNegotiation) { json() }
}

mainからモジュールを呼び出す

モジュールを組み合わせるには、embeddedServer ブロック内でモジュール関数を呼び出します。

fun main() {
    embeddedServer(Netty, port = 8080) {
        configureRouting()
        configureSerialization()
        configureSecurity()
    }.start(wait = true)
}

application.conf(HOCON設定)

embeddedServer の代わりに、application.conf ファイル(HOCON形式)を使用し、EngineMain 経由で実行する方法もあります。設定ファイルではエントリーモジュールとポートを指定します。

# application.conf
ktor {
    deployment { port = 8080 }
    application {
        modules = [ com.example.ApplicationKt.module ]
    }
}

EngineMainとembeddedServerの比較

コードで完全に制御したい場合(テストやシンプルなアプリに適しています)は embeddedServer を使用します。再コンパイルせずに環境ごとの設定を切り替えたい場合は、EngineMain と application.conf を使用します。

ApplicationCallオブジェクト

すべてのリクエストハンドラーは ApplicationCall を受け取ります。これにより、リクエスト(call.request)、レスポンス(call.response)、さらに call.respondText() や call.respond() などのヘルパーにアクセスできます。

環境設定とロギング

モジュール内で環境設定にアクセスするには environment.config を使用します。ロギングにはSLF4Jを使用します。src/main/resources/ に logback.xml を追加して、ログレベルと出力形式を設定します。

開発時のホットリロード

Ktorは development モードフラグによる開発時のホットリロードに対応しています。application.conf で有効にするか、プログラムから次のように設定します。embeddedServer(Netty, port = 8080, developmentMode = true) { ... }

プロジェクト構成の慣例

一般的なKtorプロジェクトの構成は次のとおりです。

  • Application.kt — main() エントリーポイント
  • plugins/ — Application拡張関数ごとに1ファイル(Routing、Serialization、Authなど)
  • routes/ — ドメインごとにまとめたルート定義
  • models/ — データクラス

確認問題

KtorにおけるApplicationモジュール関数には、どのような目的がありますか。

振り返り:Ktorプロジェクトのセットアップ

要点:

  • embeddedServer(Engine, port) { ... }.start(wait=true) は最も簡単なエントリーポイントです
  • 設定を Application に対するモジュール拡張関数に分割します
  • 外部化した設定には EngineMain と application.conf を使用します
  • すべてのリクエストハンドラーは ApplicationCall を使用してリクエストとレスポンスにアクセスします
  • 保守性を高めるため、routes/ パッケージにルートをまとめます

よくある質問

「Ktorプロジェクトのセットアップ:embeddedServerとApplicationモジュール」レッスンは無料ですか?

はい。「Ktorプロジェクトのセットアップ:embeddedServerとApplicationモジュール」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Kotlin Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Kotlin Academyコースには全4レッスンが含まれています。

「Ktorプロジェクトのセットアップ:embeddedServerとApplicationモジュール」で何を学びますか?

Ktorアプリケーションを起動し、Nettyを設定して、アプリケーションモジュールを定義します。 ブラウザで直接実行するハンズオンコードでKotlin Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Kotlin Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのKotlin Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Ktorプロジェクトのセットアップ:embeddedServerとApplicationモジュール」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このKotlin Academyレッスンでコードを書いて実行できますか?

はい。すべてのKotlin Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Ktorプロジェクトのセットアップ:embeddedServerとApplicationモジュール
  2. ルーティングと型付きパラメータ
  3. Content Negotiationとkotlinx.serialization
  4. 認証プラグイン:JWTとSession
← Kotlin Academyに戻る