mruby-hibariとmruby-rack-r3でWeb API フレームワークを書いた
まだ表現力は乏しいですが、一応mrubyのWeb APIフレームワークのfirst commitを書きました。
書き味は、CRubyのGrapeやその他のRESTライクなAPIを書くフレームワークのような感じになっています。mruby-hibariやmuby-rack-r3など巨人の肩の上に乗ってる感が満載ですが。
試しにmod_mrubyで使ってみます。 まず、インストールは通常のようにbuild_config.rbに依存mrbgemを追記します。
MRuby::Build.new do |conf| # ... (snip) ... conf.gem :github => 'ujun/mruby-webapi' end
そして、mod_mrubyをビルド => インストール。
cd /path/to/mod_mruby sh build.sh make && make install
例えば、以下のようなフックの設定を書き、mrubyスクリプトを参照します。
そして、参照先スクリプトは以下のように書きます。 Rack::WebAPIを継承して、応答する内容をmruby-rack-r3のDSLで書きます。
Apacheを起動して、定義したエンドポイントにアクセスしてみます。
curl http://localhost/fuga #=> "Fuga World!" curl http://localhost/hoge/22 #=> your id is 22
以上のように、直感的にmrubyでWebAPIを書けるようになりました。
mrubyでがっつりWebアプリケーションを書くことはあまりないかも知れませんが、WebAPIサーバならアリなんじゃないかと思えてきました。これと同じようなことが、以下のエントリの最後のほうにも書いてありました。
mod_mruby を使った Web アプリ - Qiita
mrubyでWebAPI、楽しそうなネタです。