旅するえんじにあ - Engineers to Travel -

旅するエンジニアの気まま備忘録

【Parse】 最近流行りのMBaaS BaaSの Parse.com を触ってみた。

Baas MBaaSなんて言葉を最近良く聞くようになりました。 これは(Mobile) Backend as a Service の略称になり IaaSとかPaaSなんかのように自分でバックエンドのコードを書いて実装する必要がありますが BaaSやMBaaSについてはSDKAPIでなんとかしちゃおう的な感じです。

要はクライアントサイドは作れる、View周りのコーディングだってできるというフロントの方々が動的なページが必要だったり、システム部分が必要になったらサーバサイドの開発が必要。

更に言うと、PHPやNode.js、Javaだってできるぜって方でもLinux(でなくてもいいけど)環境を構築できるかというと色々とスキルが必要になってきます。

そこでBaaSです。

今回から何度かに渡って最近使ってるParseについて書いていければなと思います。 さて今回はParseとはなんぞやってところからなのかなと。

一言で言うと、サーバ側のコードを書かずにデータストアへのアクセスからプッシュ通知、アカウント管理機能まで付いている 結構便利なやーつ。

しかもチュートリアルも簡単で直感的操作で簡単にできるっていうのが嬉しい。

だがしかし。

あくまで技術ブログなので少しくらい弄りますよ。 ってことで、Parseはサーバ側にCloudCodeというものを備えており、JavascriptAPIを書くことができる。 ここについて少し書いていこうかと思います。

今回はインストールからCloudCodeにソースをアップして確認するところまで。

まずはParseを登録してCreateAppしておいてください。Appの名前はなんでもいいです。 今回は適当に「test」というアプリを作成しました。 まずはAPIを用意するだけなので、Core(ストレージ)でClassを作ってとかいうのは次にでも。

さてそしたら次はLinux側でParseをインストールします。 もちろんMacUnix環境でも可能です。

$ curl -s https://www.parse.com/downloads/cloud_code/installer.sh | sudo /bin/bash

公式に書いてあることそのままですが、parseは/usr/local/bin/parseにインストールされ 付随しているファイルもないので、アンインストールは/usr/local/bin/parseを削除するだけです。

次に、プロジェクトを作成します。 自分はとりあえず、/home/[ユーザ名]以下にparseというディレクトリを作り、その中で作業をすることにしました。

$ mkdir parse

早速Cloud Codeのセットアップをしていきます。 以下コマンドを実行して対話形式に行っていきます。

$ parse new test

すると、まずは自動的に必要ディレクトリが作成され、Email、Passwordを求められます。 Email,PasswordについてはParseのログイン時のものを入力します。

Creating a new project in directory /home/[user_name]/parse/test
Creating directory /home/[user_name]/parse/test/config
Creating config file /home/[user_name]/parse/test/config/global.json
Creating directory /home/[user_name]/parse/test/cloud
Writing out sample file /home/[user_name]/parse/test/cloud/main.js
Creating directory /home/[user_name]/parse/test/public
Writing out sample file /home/[user_name]/parse/test/public/index.html
Email: deadcode.ben@gmail.com
Password: 

入力が完了するとParseで作ったアプリケーションの一覧が出てきます。 testの他にもaaaaaという適当なアプリも作ったので2つ出てきています。 どのアプリケーションのAPIを作るかなので、今回はtestを選択します。

1:      test
2:      aaaaa
Select an App: 1
Set test as default
Written config for test

これでCloudCodeのセットアップは完了です。

ここから作成されたディレクトリを見て行きましょう。

test
├── cloud
│   └── main.js
├── config
│   └── global.json
└── public
    └── index.html

3 directories, 3 files

少な! 今回お世話になるのは test/cloud/main.jsになります。

こちらを早速開いてみます。

// Use Parse.Cloud.define to define as many cloud functions as you want.
// For example:
Parse.Cloud.define("hello", function(request, response) {
  response.success("Hello world!");
});

既にサンプルコードが書かれていますね。 とりあえずHello world!って表示されそうなものですね。

細かい説明は次にして、早速ちょっと変更してアップしてみましょう。

response.success("Hello world!");

ここの記述を

response.success("Hello parse.com world!");

こんなふうにしてみました。

早速このソースをParseにアップしましょう! まずはtestディレクトリまで移動します。

cd /home/[user_name]/parse/test

そこからDeploy!

$ parse deploy test
Uploading source files
Deploying recent changes to scripts...
Deploying recent changes to hosting...
Finished uploading files
New release is named v1 (using Parse JavaScript SDK v1.4.2)

ここではparse deploy testとアプリケーション名を指定していますが 特に指定しなくても大丈夫です。

ということでこれでアップが完了しました。

次は確認をします。

curl -X POST \
  -H "X-Parse-Application-Id: [Application ID]" \
  -H "X-Parse-REST-API-Key: [REST API Key]" \
  -H "Content-Type: application/json" \
  -d '{}' \
  https://api.parse.com/1/functions/hello

こんな感じでCurlでアクセスしにいきます。 [ApplicationID] [Rest API Key] この二点については新しくAppを作成した時に表示されていました。 覚えてない場合はDocsに行くと、App毎のIDやKeyが書かれた状態での上記コマンドがあるのでそれを使いましょう!

参考:https://parse.com/docs/jp/cloud_code_guide

さて、これを叩くと

[root@localhost test]# curl -X POST \
>   -H "X-Parse-Application-Id: 9hEaqooViTltgUK5lBZrqGmv8kZQyY5MVflITDzQ" \
>   -H "X-Parse-REST-API-Key: CaSYfQGd4tdHZz269qwrOONAeyVvEqxIoxNHcd2r" \
>   -H "Content-Type: application/json" \
>   -d '{}' \
>   https://api.parse.com/1/functions/hello
{"result":"Hello parse.com world!"}

こんな感じで出てきます。 最終行に注目してください。

{"result":"Hello parse.com world!"}

先ほど設定した内容がresultとして出力されました。

こういった形でmain.jsに処理を書くことによって少し複雑な事だってできるのです。

今後はここから更にAppのClassよりデータを取得したり、新規にデータ作成、保存したりするような事を書いていければと! 新しい事を覚えるのは楽しいですねー。