にわとりプログラマーの備忘録

覚えたことをすぐ忘れてしまう、自分のための備忘録ブログです。

Scalaの軽量フレームワークScalatra

ScalatraSinatraに影響を受けたScalaの軽量Webフレームワークです。

簡単に触ってみたので、導入手順をメモしておきます。

giter8のインストール

ScalatraはScalaのスキャフォールディングツールgiter8を使って、テンプレートからプロジェクトを生成します。 インストールはhomebrewを使って行います。

$ brew update && brew install giter8

プロジェクトの雛形生成

先ほどインストールしたgiter8を使って、Scalatraのプロジェクトを作成します。

$ g8 scalatra/scalatra-sbt 

生成されたプロジェクトのソースコードを確認してみます。 アプリケーションのメインとなるソースコードsrc/main/scala/com/example/app/MyScalatraServlet.scalaになります。 MyScalatraServlet.scalaの部分は、g8で雛形を作成する際に入力したファイル名になっています。

package com.example.app

import org.scalatra._

class MyScalatraServlet extends SimplescalatraStack {

  get("/") {
    <html>
      <body>
        <h1>Hello, world!</h1>
        Say <a href="hello-scalate">hello to Scalate</a>.
      </body>
    </html>
  }

}

このソースコードは、サーバーのルート(/)にアクセスした際に記述されたHTMLをレスポンスとして返す処理が書いてあります。

HTMLページを表示してみる

以下のコマンドでサーバーを起動します。

$ sbt
> ~jetty:start

上記コマンドの~を付けることでソースコードの変更時にサーバーを自動で再起動されるようになります。 毎回起動し直すのは、面倒なので~を付けることをお勧めします。

http://localhost:8080にアクセスして、HTMLページが表示されれば導入完了です。

さいごに

Scalatraは非常にシンプルに使うことができるので、簡単なREST API などを実装するのに向いているのかなと思います。