Server Plugin
Mustache
必要な依存関係: io.ktor:ktor-server-mustache
コード例: mustache
Nativeサーバーのサポート: ✖️ KtorはKotlin/Nativeをサポートしており、追加のランタイムや仮想マシンなしでサーバーを実行できます。
Ktorでは、Mustacheプラグインをインストールすることで、アプリケーション内でMustacheテンプレートをビューとして使用できます。
依存関係を追加する
Mustache
を使用するには、ビルドスクリプトにktor-server-mustache
アーティファクトを含める必要があります。
Kotlin
Groovy
XML
Mustacheをインストールする
アプリケーションにMustache
プラグインをインストールするには、指定された
モジュール
のモジュールを使用すると、ルートをグループ化してアプリケーションを構造化できます。
install
関数に渡します。以下のコードスニペットは、Mustache
をインストールする方法を示しています。 - ...
embeddedServer
関数呼び出し内。 - ... 明示的に定義された
module
内(これはApplication
クラスの拡張関数です)。
kotlin
kotlin
install
ブロック内で、MustacheテンプレートをロードするためのMustacheFactoryを設定できます。
Mustacheを設定する
テンプレートの読み込みを設定する
テンプレートをロードするには、MustacheFactoryをmustacheFactory
プロパティに割り当てる必要があります。例えば、以下のコードスニペットは、Ktorが現在のクラスパスに対するtemplates
パッケージ内のテンプレートを探すように設定します。
kotlin
import com.github.mustachejava.DefaultMustacheFactory
import io.ktor.server.application.*
import io.ktor.server.mustache.Mustache
import io.ktor.server.mustache.MustacheContent
fun Application.module() {
install(Mustache) {
mustacheFactory = DefaultMustacheFactory("templates")
}
}
レスポンスでテンプレートを送信する
index.hbs
テンプレートがresources/templates
にあるとします。
html
<html>
<body>
<h1>Hello, {{user.name}}</h1>
</body>
</html>
ユーザーのデータモデルは次のようになります。
kotlin
data class User(val id: Int, val name: String)
指定されたルートにテンプレートを使用するには、MustacheContent
をcall.respond
メソッドに次のように渡します。
kotlin
get("/index") {
val sampleUser = User(1, "John")
call.respond(MustacheContent("index.hbs", mapOf("user" to sampleUser)))
}