すべての呼び出しに対して JSON を返す REST Web サービスを構築しようとしています。通常、これは非常に簡単です。私は次のようにします。
return new Response(json_encode($return_object));
私の質問は、グローバルな方法で例外をインターセプトするにはどうすればよいですか? これを行いたいのは、アプリケーションのどこかで例外が発生した場合でも、JSON メッセージをクライアントに返したいからです。私の考えでは、成功と失敗の両方のケースで JSON を返すことで、クライアントが API を実装するために必要な作業が簡素化されます。
これまでのところ、私が考えることができる唯一のことは、すべてのコントローラー アクションを次のように記述することです。
public function generateMemeAction($arg1, $arg2) {
$return_object = array();
try {
// stuff to generate meme here
$return_object['status'] = "GREAT SUCCESS!";
} catch (Exception $e) {
// epic fail
$return_object['status'] = "UnluckyBrianException";
}
return new Response(json_encode($return_object));
}
これは素晴らしいことですが、この try-catch ブロックはアプリ内のすべてのアクションで同じであり、たくさんのコピー パスタを編集する必要があるたびにばかげていると感じます。プロのヒント?