▶ 技術めも
Parse Cloud Code テストツール
Parse Cloud Code テストツール
ドキュメントには curl を利用して Parse の Cloud Code API を叩く方法が記載されていますが、いちいち「curlコマンド」をコンソールにコピペするのが面倒だったので PHP で API テストプログラムを作りました。
ダウンロード
- ダウンロードしたPHPプログラムの先頭に下記の1行を追加すれば、通常のシェル/Perl スクリプトと同様に実行することができます。
#!/usr/bin/php
<?php
…
使い方
引数に「設定ファイル名」を指定します。
「ParseKeyファイル(config)」「設定ファイル(hello.txt)」を読みこんで、parse.com にアクセスします。
#php parse.php hello.txt
ParseKeyファイル
※ 設定ファイルと同じディレクトリに「config」という名前でおいてください
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1行目: Parse-Application-Id
2行目: Parse-REST-API-Key
設定ファイル(hello.txt)
/functions/hello
{
"score":1337,
"playerName":"Sean Plott",
"cheatMode":false
}
設定ファイル フォーマット
1行目: /functions/hello (リクエストパス)
2行目以降: 送信JSON
この設定ファイルでは、下記URLにリクエストを行います。
https://api.parse.com/1/functions/hello
テスト実行
実行すると、リクエストとレスポンスが表示されます。
$ php parsetest.php hello.txt
------------------------------
https://api.parse.com/1/functions/hello
{"score":1337,"playerName":"Sean Plott","cheatMode":false}
------------------------------
{"result":"Hello Parse!"}
------------------------------
1.3284211158752 sec
動的設定ファイル変更
設定ファイルの JSON部分 に「%%ARGV1%%」と記載することで、コマンド実行時の第2引数を %%ARGV1%% の部分に設定できます。
- 設定ファイル(hello2.txt)
/functions/hello
{
"score":1337,
"playerName":"%%ARGV1%%",
"cheatMode":false
}
次のように第2引数を設定してコマンドを実行します。
$ php parse.php hello2.txt tatenosystem
------------------------------
https://api.parse.com/1/functions/hello
{"score":1337,"playerName":"tatenosystem","cheatMode":false}
------------------------------
{"result":"Hello Parse!"}
------------------------------
1.1894180774689 sec
リクエスト内容の引数指定は複数可能です(%%ARGV2%% ~)
- hello3.txt
/functions/hello
{
"score":%%ARGV1%%,
"playerName":"%%ARGV2%%",
"cheatMode":%%ARGV3%%
}
3つの ARGV を指定した場合は、下記のように3つの引数を定義し実行します。
$ php parse.php hello3.txt 5520 tatenosystem true
標準APIで情報取得
このような Review Class(テーブル) から情報を取得してみます。
設定ファイルの JSON部分 を記載しないと GETリクエスト となります。
次のような設定ファイルを用意します。
- review.txt
/classes/Review/%%ARGV1%%
引数にオブジェクトID指定して取得します。
$ php parsetest.php review.txt 1R3bg027P2
------------------------------
https://api.parse.com/1/classes/Review/1R3bg027P2
------------------------------
{"movie":"惑星大怪獣ネガドン","stars":9.8,"createdAt":"2014-03-07T04:24:06.189Z","updatedAt":"2014-03-07T04:24:23.440Z","objectId":"1R3bg027P2"}
------------------------------
0.98579788208008 sec