私はlaravelのdingo apiで500エラーを処理する問題を示すために以下のコントローラを作った。 500エラーがスローされてクライアントに送信されないようにすることができるようにしたい(クライアントと共有するには詳細があまりなく、Laravelのみでログに記録する必要があるため)。Laravel Dingo API - ログ500のみのエラーです.API経由でエラーの詳細を送信しませんか?
これは、クライアントが見ているものであるため、タイプミスに意図的にfirsgt()
class TestController extends Controller {
public function getUser() {
$data = User::firsgt(); //returns 500 error
return $data;
}
}
を500エラーを返しgetUser()
方法:私のコントローラで
を、私は/成功を返すことによって、手動でエラーを処理エラーjsonの応答をコントローラ内からは、私は期待していないエラーが発生した場合、APIを返し、それはクライアントが見るためにあまりにも多くの詳細を持っています。代わりに、これらの予期しないエラーは、ジェネリックエラーが発生したレスポンスを返すために何らかのハンドラにバブルアップする必要があります。 Laravelでは、APP_DEBUG = false
を.env
に設定するとlaravel(dingo apiでは使用できません)で動作しますが、これは効果がなく、完全なエラーがクライアントに返されます。クラックを滑り落ちるエラーの安全ネットを探しています。
クライアント '定義されていないメソッドApp \ User :: firsgt()'の呼び出しが多すぎるのではなく、エラーが発生しましたか?
注:私はそれを各コントローラメソッドの一つ一つを処理する必要はありませんが、代わりに任意の500をキャプチャし、それがクライアントに返され、返される前に、カスタム500一般的なメッセージあなたは
で
:message
を交換しそれは違うのですか? – Jamesking56
いいえ、envがプロダクションに設定されているときには本当のエラーが返されます – Wonka