最近、Parse PHP アプリケーションを Google Cloud でホストされている Parse Server に移行する作業を完了しました。それ以来、 、 などのバッチ アクションはParseObject::saveAll()
、ParseObject::destroyAll()
ほとんどの場合に失敗し始めました。これを GitHub のバグとして報告することを考えていますが、これが私のインスタンスだけではないことを確認したいと思います。
destroyAllの GitHub PHP SDK テスト コードを再現することさえできません。
...
$o1 = ParseObject::create('TestObject');
$o2 = ParseObject::create('TestObject');
$o3 = ParseObject::create('TestObject');
ParseObject::saveAll([$o1, $o2, $o3]);
ParseObject::destroyAll([$o1, $o2, $o3]);
...
このコードと私のアプリケーションでバッチ アクションを使用すると、PHP で次の種類の例外がスローされます (この例では、saveAll によってエラーがスローされます)。
キャッチされない例外 'Parse\ParseException' とメッセージ 'cannot route batch path /1/classes/TestObject'
デバッグは、Parse Server がエラー コード 107を返すことを示しています。これは、ドキュメントによると無効な JSON を意味します。REST API には詳しくありませんが、この例では、送信されるデータは
{"requests":[{"method":"POST","path":"/1/classes/TestObject","body":[]},{"method":"POST","path":" /1/classes/TestObject","body":[]},{"method":"POST","path":"/1/classes/TestObject","body":[]}]}
これは有効な JSON です。
バッチ アクションは、移行前に正しく機能していました。PHP のバージョンは 5.6 です。どんな助けでも大歓迎です。エラーが再現できたら、GitHubにIssueを作成します。