技術めも

Parse Cloud Code テストツール

Parse Cloud Code テストツール

ドキュメントには curl を利用して Parse の Cloud Code API を叩く方法が記載されていますが、いちいち「curlコマンド」をコンソールにコピペするのが面倒だったので PHP で API テストプログラムを作りました。

ダウンロード

ダウンロード(本体ファイル:parsetest.php)

  • ダウンロードした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(テーブル) から情報を取得してみます。

Retrieving REST API

設定ファイルの 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