JavaScriptでSinatra風?RESTfulをサポートしたフレームワーク「Sammy.js」
Sammy.jsはJavaScriptによるRESTfulをサポートしたWebフレームワーク。
Sammy.jsはJavaScript製のオープンソース・ソフトウェア。Webアプリケーションを開発する際には、サーバサイドとクライアントサイドの二つを開発する必要がある。クライアントサイドにはJavaScriptやFlash、HTMLなどが使われているだろう。
フォームのハンドリングも可
しかしJavaScriptはどんどん高度化し、機能が増している。JavaScriptだけで解決できることは日々増えているのだ。もはやサーバサイドを必要とせず、Webアプリケーションを構築できてしまう。そのためのフレームワークがSammy.jsだ。
Sammy.jsはごく小さなWebフレームワークで、ルーティングを備えている。クライアントサイド内でRESTfulをルーティングで定義し、アクションを受け取ることができる。何とも奇妙な動作だが、面白い。フォームの送信先がSammy.jsで、その場でPOSTデータを処理することだってできる。
コード。ルーティングを定義する。
ejsのようなテンプレートファイルを読み込んで処理することもできる。面白い使い方として、ローカルで動作するソフトウェアが想定されている。Webブラウザ上で動作するソフトウェアだ。Ajaxも使えるが、ChromeはHTTP(S)しか受け付けなくなっている(fileが使えない)との問題もある。
今は.NETやJava、C、Objective-Cといった言語でローカルアプリケーションを開発したり、RubyやPerl、Pythonスクリプトを配布してターミナルで実行したりする。Sammy.jsを使うとWebブラウザ内かつローカルで処理をしてサーバサイドにアップロードするソフトウェアが実現できるようになる。
MOONGIFTはこう見る
ルーティングがついているJavaScriptというのがなかなか面白い。これまではオブジェクトに対してJavaScriptを定義するのが一般的だったが、Sammy.jsはルーティング(DOMベース)を定義してから処理を書く。サーバサイド、Sinatra系のフレームワークに近いものと言える。
AjaxやjQueryなどJavaScriptを進化させてきた技術は多数存在するが、Sammy.jsはもしかするとその一つになれる可能性を秘めている。特にRESTfulを活用することでサーバサイドと容易く連携できるのが大きい。ぱっと見では実用性が分からないのだが、考えてみると面白そうな使い方もできそうなライブラリだ。
Sammy.js / A Small Web Framework with Class / RESTFul Evented JavaScript