5/12(日)の話。
学んだこと
Scalatra
- http://scalatra.org//
- Scalatraの哲学 http://scalatra.org/guides/2.6/scalatra-philosophy.html
- ScalaのFrameWorkの比較 https://furien.jp/columns/193/
- LinkedInで使われている
- SINATRAの原則を踏襲
getメソッドにString型の変数を渡せる理由
def get(transformers: RouteTransformer*)(action: => Any): Route = addRoute(Get, transformers, action)
に対して、
get("/hello") { "Hi there!" }
のように、getメソッドを実行できる。
これはImplicit Conversionのおかげ。
ScalatraBase.string2RouteMatcher
のImplicit Conversionによって、String
からRouteTransformer
型に変換できている。getの引数にString型の変数を渡せる理由。
Scala
- 可変長引数には
*
を付ける - sbtで
~compile
のようにすると、ファイルの変更を監視する。(~;jetty:stop;jetty:start
) - giter8: コマンドラインでファイルやディレクトリを生成するツール。Scalatraで利用されている http://takezoe.hatenablog.com/entry/2017/01/02/161519
- twirl: ScalaのTmplate Engine
- def sample(action: => Any)は名前渡しパラメータ(Call by Name)
- 遅延評価
その他
- Apache Ivy: ライブラリ管理ツール
- x-http-method-override: GET,POSTしか使えない環境で、PUT, DELETEを使う方法
質問
- scalatraでuriが使えない。urlなら使えた。バージョン?