LoopBack とは
Node.js ベースの BaaS(Backend as a Services) を作ることが出来るオープンソースです。
- http://loopback.io/
- http://strongloop.com/mobile-application-development/loopback/
- http://www.infoq.com/jp/news/2013/09/loopback
BaaSで一般的な認証、ユーザ管理、プッシュ通知、ファイル管理なども最初から用意されていますが、もっとも特徴的なのは、Data Model から JSONベースの REST APIを自動生成してくれるところでしょう。Android, iOS, HTML5 (Angular.js) のClient SDKも用意されているので、アプリを作る際もラクが出来そうです。
同じ Node.jsベースのオープンソースBaaSである deployd と違って、データの保存先を mongo, mysql, oracle, PostgreSQL, REST API 等、いろいろ設定出来ます。Build-in の Memory-connector もあり、下記で紹介するサンプルアプリでは、Memory-connector を使ってくれるので、DBのインストールも必要ありません。
インストール
npm などが使える状況にしたうえで、下記を実施します。
node.js v10.28 で試しています。
$ npm install -g strong-cli
LoopBack Sample App
Getting started にある "Create and run the LoopBack sample app…" を参考に example を動かしてみました。
- sls-sample-app
https://github.com/strongloop/sls-sample-app
上記サンプルアプリのインストールは、strong-cli にコマンドとして含まれているようで、下記だけでインストールが出来るようになっています。
$ slc example
すると、sls-sample-app というディレクトリが出来るので、そこに移動した上で、
$ slc run
以上で http://0.0.0.0:3000/ にアクセスすると、下記みたいな格好いい画面が見えるようになりました。
Sample Requests のところは、GETボタンを押すと、その場で GETのリクエストが飛び、レスポンスが画面に表示されるようになっています。なかなかよく出来たサンプルアプリですね!
また、LoopBack には、loopback-explorer というものがあり、LoopBack で生成したモデルから、カンタンにswagger ベースの API ドキュメントを生成する事ができるようです。すばらしい! サンプルアプリでも http://0.0.0.0:3000/explorer/ にアクセスすると、下記のような画面を見る事が出来ます。
この APIドキュメントを実現するためのコードは、下記だけ!!
// API explorer (if present)
var explorerPath = '/explorer';
try {
var explorer = require('loopback-explorer');
app.use(explorerPath, explorer(app, { basePath: apiPath }));
} catch(e){
// ignore errors, explorer stays disabled
}
いろいろある Module
https://github.com/strongloop/loopback#loopback-modules にあるように、様々なモジュールを利用して拡張が出来るようになっています。
上記URLに載っているモジュール以外にも、下記のようなモジュールがあるようです。
- 各種認証連携
- AMQP連携
まとめ
今回は、いろいろ調べつつ、とりあえずサンプルを動かしてみた というレベルですが、もう少し触ってみたいと思わせる出来の良さでした。日本でもこれから注目されるかもしれませんね :-)