そろそろ Play Scala
Play 2.5に入門シリーズ。前回まででPlay2.5 Javaの方は、データベース接続込みのアプリ動作を一通りお試ししたので、そろそろ、ScalaでPlay2.5を始めていきたい。非同期周りとかに地雷が潜んでそうな予感。
その後に、PlayでのScalaコードとJavaコードの混在を試し始める予定。
そろそろアプリのプロトタイピング
一人でちまちま入門していると飽きてくること間違いなしなので、近い将来に作りたいアプリのプロトタイプ作りを兼ねた作業としたい。githubでの皆さんがコミットしているコードを見つつ、どのあたりを作りこんでみるか、しばし考える。
元とするアプリ : Anime RESTful API サーバー
Play Scalaでの実用的なコード例と解説のひとつに、
放映中のアニメ作品の情報を提供するAnime RESTful API サーバー作りましたがある。
こちら、アニメに関する情報集約サービスを提供しているAKB428さん@秋葉原IT戦略研究所の作で、アニメ公式フォロワー数にあるような情報が扱われている。
2014年春の場合:
...昨晩のネタに登場した、魔法科高校の優等生界隈は、ラブライブやハイキューにぶっちぎりで負けていたのか...
PlayベースのRESTサーバーは、以下のtwitterメディアのバックエンドとして働いている模様。...ツイート数35万超。
プロトタイピングするアプリ:OtaCal
我が道を行くAKB428さんのソースコードをfolkさせてもらうからには、近いネタで行ってみることとしたい。
参考にするのは、近時始まったヲタカル(otacul)の取り組み。こちら、現時点ではサンスポ.comの情報ページ企画としての位置づけなのだが、より幅広いオタクカルチャーのメディアとして発展させていく心意気がある模様。
ということで、ヲタカルのコンテンツと、関連情報とをつなげる情報提供サーバーをREST APIベースで試作することとしたい。いずれ作るつもりのサービスがカレンダー系なので、プロトタイプアプリの名称はOtaCalとする。
こちら、けっこうまじめに作り始めるので、成果の方は、本入門記事とは別に別途公開することとしたい。
乞、ご期待。
Play2.5で、Anime RESTful API サーバーをコンパイルしてみる。
OtaCal元とするAnime RESTful API サーバーは、Play2.3系。ということで、まずは、Play2.5でコンパイルするとどうなるのか、試しておきたい。
まずは、project/plugins.sbtを2.5系としておく。
// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.2")
すると、(ORMの)Anormは、もう外部モジュールになったよ、と怒られる。
$ activator compile
[info] Loading project definition from /Users/Apple/play252/sora-playframework-scala/project
[info] Updating {file:/Users/Apple/play252/sora-playframework-scala/project/}sora-playframework-scala-build...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
Anorm has been moved to an external module.
See https://playframework.com/documentation/2.4.x/Migration24 for details.
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? i
[warn] Ignoring load failure: no project loaded.
[error] Not a valid command: compile (similar: completions)
[error] compile
[error] ^
ということで、Play 2.5においては、前回お試ししたJavaのORMであるEbeansを使うか、ScalaのFRMであるSlickを使うかといったような決断が求められる模様。
#次回以降
DockerでPlay2.5を動作させ、AWSやGCPに公開する練習をしたい。