FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

スクリプト機能でRubyが使えるようになりました!

f:id:mbaasdevrel:20180418153723p:plain

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
  • レスポンスボディ
    配列または文字列

このコードを管理画面でアップロードします。

f:id:mbaasdevrel:20180418153511p:plain

スクリプトの実行

スクリプトの実行は任意の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であれば国内外の開発者も多く、これを機にスクリプトを触ってみたいと思う方もいらっしゃるのではないでしょうか。ぜひお試しください!

スクリプト : Rubyスクリプトの作成 | ニフクラ mobile backend

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。