Life is TraversableOnce

programming / Java / Scala / Rust

Scalatraドキュメント私家訳 ルーティング(1)

正確な訳文ではありません。 またこの翻訳は何らかの権利を侵害する目的で公開するものではありません。 内容に問題を発見された方は、お手数ですが訳者までご連絡ください。


ルーティング

まずはScalatraのルーティングについて。

Webアプリケーションには、受け取ったHTTPリクエストをサーバ上のコードに関連づけ、実行させるしくみが必要です。Scalatraでは、これをルート(routes)とアクション(actions)という道具によって実現します。 http://www.yourapp.org/articlesというURLに対するPOSTリクエストを受け取ったとき、リクエストパラメータの情報をもとに、新しいArticle(記事)オブジェクトを作成するプログラムを考えてみましょう。このとき、リクエストがPOSTメソッドで送信され、要求されているパスが/articlesである、という2種類の情報がルートです。そして、実行されるコードがアクションです。 アクションについては、このガイドの次項で詳しく解説します。

簡単な例

Scalatraにおけるルートは、HTTPメソッド(GET、POST、PUT、DELETE)とURLパターンとのペアの形をとります。RESTアーキテクチャの慣例にならったコントローラクラスは、次のようになるでしょう。

class Articles extends ScalatraServlet {

  get("/articles/:id") {  //  <= この部分がルートのマッチングを行うマッチャー
    // ここにアクションを記述する
    // この例では、特定のidによって識別される記事を表示する
  }

  post("/articles") {
    // 記事の送信・新規作成を行うアクション
  }

  put("/articles/:id") {
    // 特定のidに対応する記事を更新する
  }

  delete("/articles/:id") {
    // 特定のidに対応する記事を削除する
  }
}

この例に示した4つのルートと、続くブロック内にあるアクションは、これだけで単純なブログ機能の基礎になり得るものです。例ではアクションをスタブにしていますが、実際のアプリケーションでは、コメント行の部分に、モデルの取得や保存、ビューの表示といった処理のためのコードが入ることになります。

続きは後ほど。

原文:

Routes | HTTP | Scalatra guides

記法

この記事から、Markdownの練習を始めました。