ゆずめも

メモ的なブログです。主に勉強した事について書いてます。

Play Framework 2.6のRouting

今年はアウトプットを増やす年に使用って目標立てたので、何でアウトプット増やすのかって話になってScala + Playを触ってみてる*1

今回はPlayのRouting設定のメモ

書式

Playのroutesはconf/routesに書く

書式は

METHOD    PATH    紐付ける関数

# 例: ルートにIndexControllerを紐付ける
GET    /    controllers.Index.index

GETの書き方

とりあえずGETの書き方

GET    /    controllers.Index.index

パスとかクエリパラメーターを付ける
型情報を省略した場合はStringとして認識されるみたいでLongとか、必須じゃないプロパティ等を使う時はOption[String]のようにOptionで包む

# pathパラメーター
GET    /:val    controllers.Index.index(val)

# queryパラメーター
GET    /    controllers.Index.index(val: Long)

# プロパティがあったりなかったり
GET    /    controllers.Index.index(val: Option[String])


# パスパラメーターを動的に
# `/image/nogi.png`みたいな値がpに入る
GET    /*p    controller.Index.index(p)


# 固定と可変
GET    /    controllers.Application.show(page = "home")
GET    /:page    controllers.Application.show(page)

# デフォルト値
GET    /clients    controllers.Clients.list(page: Int ?= 1)

その他メソッド(POST, PATCH, etc...)

GETの部分をPOSTとかに変えるだけ

POST    /    controllers.Index.post(name)

まとめ

他にもいろいろ機能あるみたいだけど、シンプル部分はこんな感じ

次はPOSTで送られきたJSONから値取ったりしてみる

参考

ScalaRouting - 2.6.x

*1:素振りなので実際に使うかわからん