2016-05-18 26 views
5

LaravelとLumenを初めて使用しています。私は常に出力としてJSONオブジェクトしか取得しないようにしたいと思います。ルーメンでどうすればいいですか?Laravel Lumen JSONレスポンスを確実にする

response()->json($response);を使用してJSON応答を取得できます。しかし、エラーが発生した場合、APIは私にtext/htmlのエラーを与えます。しかし、私はapplication/jsonの回答だけを欲しいです。

ありがとうございます。

答えて

16

例外ハンドラ(app/Exceptions/Handler.php)を調整して、必要な応答を返す必要があります。

これは実行できることの非常に基本的な例です。

public function render($request, Exception $e) 
{ 
    $rendered = parent::render($request, $e); 

    return response()->json([ 
     'error' => [ 
      'code' => $rendered->getStatusCode(), 
      'message' => $e->getMessage(), 
     ] 
    ]); 
} 
+0

回答ありがとうございます。しかし、私は少し質問があります、私はこれを行うことはできますか? 'return response() - > json(['code' => $ rendered-> getStatusCode()、 'message' => $ e-> getMessage()]、$ rendered-> getStatusCode());'検索しました例外のリストであり、まだリストを見つけることができませんでした。 –

+0

それは私にはうまく見えます。 'response() - > json()'関数のシグネチャを返します。 https://github.com/laravel/lumen-framework/blob/5.2/src/Http/ResponseFactory.php#L35 – Wader

関連する問題