PlayFramework

Slick の java.time 対応

普段 PlayFramework + Scala で開発していて、ORMには Slick を使うことが多い。Slickは version 3.3 から java.time をサポートするようになったのだが、MySQL の型との対応がひどく(ほとんどTEXTにマッピングされて使い物にならない)、DBにMySQLを使う場…

最近よくやるPlayFrameworkでのRequest Body(Json)の簡易Validation

業務では BodyParser での parse 時に 簡易的なValidationをすることが多い。以前は、型チェック程度の本当に簡易な Validation しかしていなかったが、最近はもう少し細かく Validation をしつつ、レスポンスを分けれるようにする書き方をすることが多いの…

ControllerComponents の中身を少し見てみる

PlayFrameworkを使っていると、まるで呪文のように何も考えずにControllerに書いている、これ。 class HomeController @Inject() ( cc: ControllerComponents )(implicit ec: ExecutionContext) extends AbstractController(cc) { この、ControllerComponent…

play.filters.headers で設定する contentSecurityPolicy は Play 2.7 から非推奨になっている

New Content Security Policy FilterThere is a new Content Security Policy filter available that supports CSP nonce and hashes for embedded content.The previous setting of enabling CSP by default and setting it to default-src 'self' was too …

PlayFramework でアクセスできるhostを制限する

概要 PlayFrameworkにはアクセスできるhostを制限できるFilterがあり、これはapplication.confファイル下記を設定することで、実現できる。 play.filters.hosts { allowed = [".example.com", "localhost:9000"] } このフィルターはホワイトリスト形式で、ex…

scalatestplus-play と ScalaTest を併用すると弊害がでる

scalatestplus-play とscalatest は一緒に入れていいものだと勝手に思ってた。ScalaTestをPlay用に拡張するプラグインだと思ってた。けど、scalatestplus-play は ScalaTestを内包しているのでscalatest-playのみを入れればよかったようだ。むしろ、scalates…

初めてのPlayFramework

ここでは、まっさらの状態からPlayFrameworkの最初の開発を始めるまでを目指す。まっさらと言っても、PCを買うところからではない。 PlayFrameworkとは? PlayFramework はScalaを使ってWebアプリを開発する際によく使われるオープンソースのWebアプリケーシ…