mBaaSにコードをアップロードし、自由に実行できるスクリプト機能において、Rubyがサポートされました!これまでNode.jsしか使えませんでしたが、選択の幅が広がりました!
今回はサンプルコードを紹介します。
使い方
例えば以下のようなコードを書きます。ファイル名は hello_script.rb とします。
require "rack" def call(env) req = Rack::Request.new(env) name = req.params["name"] if name body = "Hello, #{name}" else body = "Hello" end [200, {"Content-Type" => "text/plain"}, [body]] end
クエリストリングのようなパラメータは req.params で取得できます。
レスポンスは必ず以下の3つで構成されます。
- レスポンスステータス
数字 - レスポンスヘッダー
Hash - レスポンスボディ
配列または文字列
このコードを管理画面でアップロードします。
スクリプトの実行
スクリプトの実行は任意のSDKから可能です。今回はJavaScript SDKで試します。
const NCMB = require('ncmb'); const applicationKey = 'YOUR_APPLICATION_KEY'; const clientKey = 'YOUR_CLIENT_KEY'; const ncmb = new NCMB(applicationKey, clientKey); ncmb.Script .query({name: 'Ruby'}) .exec('GET', 'hello_script.rb') .then(res => { console.log(res.body); }) .catch(err => { // エラー処理 console.log(err) });
実行します。
$ node execute.js Hello, Ruby
ライブラリについて
現在対応しているライブラリは以下の通りです。
ライブラリ名 | version | require | 説明 |
---|---|---|---|
pg | 0.21.0 | pg | PostgreSQL のクライアントライブラリ。 |
mysql2 | 0.4.10 | mysql2 | MySQL のクライアントライブラリ。 |
httparty | 0.15.6 | httparty | HTTP クライアント用のライブラリ。 |
websocket-client-simple | 0.3.0 | websocket-client-simple | Websocket などを利用するためのライブラリ。 |
mqtt | 0.5.0 | mqtt | MQTT を利用するためのライブラリ。 |
aws-sdk | 3.0.1 | aws-sdk | AWS 互換のシグネチャ計算を行うことができるライブラリ。 |
fluent-logger | 0.7.1 | fluent-logger | Fluentd のライブラリ。 |
nokogiri | 1.8.1 | nokogiri | XML/HTML の DOM を手軽に扱うためのライブラリ。 |
ncmb-ruby-client | 0.1.3 | ncmb | ニフクラ mobile backend のクライアントライブラリ。 |
ライブラリはご要望に応じて随時追加しますので、Issues · NIFCloud-mbaas/UserCommunity までお寄せください!
まとめ
Node.jsは様々な環境で動作するのが魅力ですが、若干の取っつき悪さもあったかも知れません。Rubyであれば国内外の開発者も多く、これを機にスクリプトを触ってみたいと思う方もいらっしゃるのではないでしょうか。ぜひお試しください!