나는 아래의 컨트롤러를 사용하여 laravel에서 딩고 API를 사용하면서 발생하는 500 개의 오류를 처리하는 방법을 보여주었습니다. 500 오류가 발생하여 클라이언트에 도달하지 못하게 할 때이를 탐지 할 수 있기를 원합니다. 클라이언트와 공유 할 정보가 너무 많아서 Laravel에서만 기록해야하기 때문입니다.Laravel Dingo API - 500 로그 오류 만, API를 통해 오류 세부 정보를 보내지 않습니까?
때문에 오타에 의도적으로 500 오류를 반환 getUser()
방법은 firsgt()
class TestController extends Controller {
public function getUser() {
$data = User::firsgt(); //returns 500 error
return $data;
}
}
, 내가 수동으로 오류를 처리 성공을 반환하여/컨트롤러 내에서 json 응답 오류가 발생하지만 예상하지 못한 오류가 발생하면 API가 반환하고 클라이언트가 볼 수있는 세부 정보가 너무 많습니다. 대신, 이러한 예기치 않은 오류는 일반적인 오류가 발생한 응답을 반환하기 위해 일종의 처리기로 버블 링되어야합니다. Laravel에서 APP_DEBUG = false
을 .env
으로 설정하면 laravel (하지만 dingo api에는 해당되지 않음)에서 작동하지만 이는 영향을 미치지 않으며 전체 오류가 클라이언트에 반환됩니다. 균열을 빠져 나가는 실수에 대한 안전망을 찾고 있습니다.
'정의되지 않은 메소드 App \ User :: firsgt()'에 대한 클라이언트의 너무 많은 세부 정보 대신 '오류가 발생했습니다'와 같은 오류 메시지를 어떻게 반환 할 수 있습니까?
참고 : 나는이 클라이언트에 반환되기 전에 각 컨트롤러 방법 하나 하나 처리, 대신 모든 500을 캡처 할 및 사용자 지정 500 일반적인 메시지를 반환하지 않는
와
:message
교체는 서로 다른가요? – Jamesking56
아니요, env가 프로덕션으로 설정된 경우 실제 오류가 여전히 반환됩니다. – Wonka