[MBaaS][heroku] StrongLoopのloopbackをHerokuで動かす

By |10月 1, 2014|heroku, Javascript, MBaaS, Node.js, |


以前、個人的に自前でホスティング可能なOSSなMBaaSであるDeploydをHerokuにデプロイしてみたんですが、今回はStrongLoopのloopbackをHerokuで動かしてみます。

まず npm install -g strongloop で slc コマンド使えるようにしてからサンプルを作成します。yeomanなウィザードが始まって色々聞かれますが以下のようにします。

[html]
$ npm install -g strongloop
$ slc loopback

_—–_
| | .————————–.
|–(o)–| | Let’s create a LoopBack |
`———´ | application! |
( _´U`_ ) ‘————————–‘
/___A___\
| ~ |
__’.___.’__
´ ` |° ´ Y `

[?] Enter a directory name where to create the project: loopback-sample
create loopback-sample/
info change the working directory to loopback-sample

[?] What’s the name of your application? loopback-sample
create .editorconfig
create .jshintignore
create .jshintrc
create .npmignore
create server/boot/authentication.js
create server/boot/explorer.js
create server/boot/rest-api.js
create server/boot/root.js
create server/server.js
create client/README.md

[/html]

あとは slc run するとローカルでサーバが起動します。

[html]
$ cd loopback-sample
$ slc run .
INFO strong-agent not profiling, StrongOps configuration not found.
Generate configuration with:
npm install -g strongloop
slc strongops
See http://docs.strongloop.com/strong-agent for more information.
supervisor running without clustering (unsupervised)
Browse your REST API at http://localhost:3000/explorer
Web server listening at: http://localhost:3000/
[/html]

http://localhost:3000/explorer を見てみましょう。以下のようなREST APIのExplorer画面が表示されます。

既にあるUserをクリックして展開してみましょう。Userというリソースに対するAPIのエンドポイントが一覧表示されます。

試しに POST /Users/login を開いてみましょう。ここからお手軽にAPIテストも可能な感じです。

ということでココからユーザを作ってみましょう。POST /Users で以下のようにしたら作成できました。

では作成したユーザでログインしてみましょう。再び POST /Users/login を開いて以下のようにしたらログインが完了してResponse BodyにAccess Tokenが返ります。Response BodyのidというのがAccess Tokenです(idってキーが解りにくいですが)

で、Access Tokenをセットして GET /Users/{id} で作成したユーザのIDを渡すとユーザ内容が返ってきます。

あとはHerokuに上げるだけですがoperated by StrongLoopに書いている通り package.json を編集して Procfile を作成してpushすればOKです。

あと、ドキュメント後半にHerokuのStrongLoopアドオンもあります。これは StrongOps というモニタリングツールで作成したアプリケーションの様々なメトリクスを監視するツールのようで以下のような画面です(ローカルのアプリケーションも監視できてキモいです)

最後に特にDBが見当たりませんがこのユーザのデータはどこに保存されているのでしょうか?実はデフォルトではメモリに保存しているようです。つまりDynoが再起動したらユーザは全部消えます。

永続化するにはData sources and connectorsを参考に。