読者です 読者をやめる 読者になる 読者になる

mruby-hibariとmruby-rack-r3でWeb API フレームワークを書いた

まだ表現力は乏しいですが、一応mrubyのWeb APIフレームワークのfirst commitを書きました。

github.com

書き味は、CRubyのGrapeやその他のRESTライクなAPIを書くフレームワークのような感じになっています。mruby-hibarimuby-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、楽しそうなネタです。