サーバーサイド初心者が Play Framework 2.4 + Scala + Silhouette で認証認可動かしてメール認証を自前実装した話

なんか結果的に Play Framework の主要な機能について触れることになったっぽいので、Play + Scala の入門というかチュートリアル的成長譚。Web サービスとかどう作っていいかわからん!という私向け。

Play Framework 2.4 + Scala + Silhouette(認証認可ライブラリ) を使ってWebサービスの基本になりそうなところまで作ってみたお話。永続化は mongoDB でやったよ。

完成形は github で公開してます。

Play Framework ぜんぜんわからん。2.4系から変わりすぎ。Webよくわからんよー。認証認可どうしたらいいいんだ、ライブラリ使ったらいいのか。永続化とかどうするんですかね… という私みたいな初心者向け弾丸ツアーです。特に認証認可ライブラリ Silhouette については日本語での解説が全然ないので、役に立ったらいいな(宣伝)。

“サーバーサイド初心者が Play Framework 2.4 + Scala + Silhouette で認証認可動かしてメール認証を自前実装した話” の続きを読む

広告

Play Framework 2.4 で reverse router の absoluteURL を Controller 外で使ったら RequestHeader がねーよって言われて解決した話

小ネタ。

reverse router (controller.routes クラス)を使って URL を取得しようとした時

val link = routes.HogeController.piyo(fuga).absoluteURL()

これを controller 外で呼ぶと

Cannot find any HTTP Request Header here

とかいってエラーになる。

結論から言うと、absoluteURL のシグネチャは

def absoluteURL()(implicit request: RequestHeader): String

なので、absoluteURL() を呼ぶメソッドが Controller から呼ばれること前提で

def hoge()(implicit request: RequestHeader): String = {
  routes.HogeController.piyo(fuga).absoluteURL()
}

とかするときれいにまとまった。

よかったね。

Play Framework 2.4 Scala + Specs2 + Mockito + Guice DI でテスト素人がテストに挑戦した話

Play Framework 2.4 をちまちま触っているのですが、モダンな開発といえば自動テストはかかせないよな〜〜〜〜〜〜〜と思いつつずっと出来てなかったので触りました。

案の定、いろんなことに引っかかったし、とくに Play 2.4 から本格導入された Guice による動的DIとかと絡んで、どうすれバインダーってなってたし、モックとか Mockito とか聞いたことあるけど、どうやったらいいんですかね〜ってなったし、Futureってどう評価したらいいんだ…とかとか、いろいろあるのでまとめました。

慣れればできそうなので、テストとか Play + Specs2 + Mockito はあんまり、みたいな人、自分みたいな初心者に役に立てばいいなぁ。

“Play Framework 2.4 Scala + Specs2 + Mockito + Guice DI でテスト素人がテストに挑戦した話” の続きを読む