ニフクラmBaaSお役立ちブログ

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

【サーバーレス超入門】インフラ構築不要!NCMBスクリプトを使って外部APIを叩く

f:id:mbaasblog:20180123155654p:plain Wikimedia Commons*1

サーバーレスアーキテクチャーはニフクラmobile backend(通称: NCMB)を利用して実現することが可能です。

今回の記事ではNCMBスクリプトについてのご紹介と、その機能を用いて、サーバーレスアーキテクチャーの基礎となる、外部APIを叩く方法についての実装方法を解説します。

NCMBスクリプトとは?

NCMBスクリプトとは、クラウド上にJavaScriptで記述されたスクリプトを作成し、NCMBの管理画面やAPIからスクリプトの実行ができるサービスです。

サーバーの構築や運用をすることなく、サーバーサイドで稼働するスクリプトが利用可能となります。

クラウド上のスクリプトを作成するのでサーバー運用費用が発生せず、ご利用頂いた分だけの従量課金となるので、コストカットにも繋がります。

f:id:mbaasblog:20180123095221g:plain *2

NCMBスクリプトとニフクラスクリプトとの違いは?

ニフクラにはニフクラスクリプトNCMBスクリプトという似た名前のサービスがあります。

中身は同一ですが、NCMBスクリプトはNCMBの管理画面、ニフクラスクリプトはニフクラの管理画面から操作することが出来ます。

ニフクラスクリプトは下記URLをご参照ください cloud.nifty.com

NCMBスクリプトを使って開発する

ライブラリについて

NCMBのスクリプト機能では様々なライブラリを利用することが出来ます。
記事執筆時点で利用できるライブラリについては下記の通りです。

f:id:mbaasblog:20180123102044p:plain

MySQLRedis といったライブラリにも対応しています。
既存の環境との繋ぎ込みにも活用することが出来そうですね。

また、ライブラリは随時追加を行っていますので、希望のライブラリがありましたらコミュニティ からリクエストを送ると良いかもしれません!

実際に動かしてみよう!

それでは、実際に開発を行っていきます。
今回は superagent というライブラリを用いて外部APIを呼び出します。

superagent とは HTTP リクエストをするための Node.js モジュールです。
使い方は jQuery の Ajax に似ているので非常にとっつきやすいと思います。

get / postといったメソッドと一緒にURLを指定します。
また send メソッドを呼び出す際にデータを指定できます。

そして end メソッドに対してエラーとレスポンスが返ってきます。
エラーが null であれば、処理が無事完了したということになります。

一番簡単な GET は下記のように書きます。

module.exports = function(req, res) {

  var request = require('superagent');
  
  request("GET","http://httpbin.org/get")
  .end(function(res){
      console.log(res);
  });

}

コードが書けたらNCMBの管理画面のスクリプトのタブを開き、ソースコードをアップします。 f:id:mbaasblog:20180123143143p:plain

メソッドを GET に設定しアップロードを完了します。 f:id:mbaasblog:20180123143315p:plain

アップロードが完了すると、実行タブを選択し、実行ボタンを押します。 f:id:mbaasblog:20180123143318p:plain

実行が完了すると、画像のように結果が表示されるかと思います。 f:id:mbaasblog:20180123143320p:plain

ニフクラ mobile backend(NCMB)を利用すると、非常に簡単に外部APIを叩くことができる事をご理解頂けたかと思います!

最後に

次に記事を書く機会があれば、他のmBaaSの他の機能と連携した、より実践的なサーバーレスアーキテクチャーについてご紹介したいと思います。 (例えば、スクリプトでRESTAPIを叩き、レスポンスで取得した情報をデータストアに投入する、等)

また、ニフクラ mobile backend(NCMB)では相談会を実施しております。

  • サーバーレスなバックエンドのスマホアプリを実現したい
  • スマホアプリ導入前の懸念点を解消したい
  • 既存スマホアプリ・既存システムからの移行計画を相談したい

といったお悩みがございましたら、気軽にご相談ください。

相談会

参考

サーバーレスについては過去の講演資料をご参考ください。

www.slideshare.net *3

関連記事

blog.mbaas.nifcloud.com blog.mbaas.nifcloud.com blog.mbaas.nifcloud.com

山本昇平 (Shohei Yamamoto)

ニフクラ mobile backend のコードも書ける企画・海外展開担当。 ゲーム向けクラウドを得意とし、1人でも多くの人にクラウドに触れて頂けることを目標としています。 趣味はスプラトゥーンとシンガポールをはじめとした海外旅行。