Scalaの一番有名なフレームワークはPlay Frameworkである。
Play Frameworkに対して簡単に勉強しようと。
特に話がない内容はPlayFramework公式ホームページの内容を基に作成。
HTTP Routing
内装のHTTPルータ
RouterはActionに来るHTTP Requestを訳すコンポーネントである。
MVC Frameworkで、HTTP RequestはEventに扱われる。
Eventは2つの情報のパートを含めている。
クエリ文字列を含めたRequest Path(e.g.
/clients/1542
,/photos/list
)HTTP Method(e.g.
GET
,POST
)
Routesはconf/routes
ファイルに書いてある。
routesファイルのSyntax
conf/routes
はルータに使われる設定ファイルである。
各ルーツはHTTP Method
とURI pattern
で構成されている。
2つのパートで構成されているルーツでAction
が呼ばれる。
GET /clients/:id controllers.Clients.show(id: Long)
-> /api api.MyRouter
一般的にはHTTP Method
、URI
、Controllerの関数
の指定でルーツを書く。
しかし、別のroutesファイルを作成した場合には->
、URI
、Controllerの関数
を書く。
Note
URIのパターンは1つ以上のDynamicパートで構成可能
Regular Expressionの適応も可能。
HTTP Method
PlayはHTTPがサポートするすべてのメソッドの使用が可能。
GET
、PATCH
、POST
、PUT
、DELETE
、HEAD
のすべてが使用可能。
Reverse Routing
def helloBob = Action {
implicit request => Redirect(routes.<Controller>.<method>(<params>))
}
Default Controller
PlayにはDefault Controllerが内装されている。
// 303 See Other
GET /about controllers.Default.redirect(to = "http://~")
// 404 Not Found
GET /orders controllers.Default.notFound
// 500 Internal Server Error
GET /clients controllers.Default.error
// 501 Not Implemented
GET /posts controllers.Default.todo