2016-04-01 43 views
7

我試圖建立使用Laravel框架一個REST API,我想一個辦法迫使API總是與JSON responed不這樣做manulaly喜歡:你如何在Laravel的每個響應中強制使用JSON響應?

return Response::json($data); 

換句話說,我想每個響應成爲JSON。有沒有一個好的方法來做到這一點?

更新:的反應必須是JSON即使在異常如不找到 例外。

+1

所以你想要的是能夠寫'返回$ data'並將其轉換爲'返回Response :: json($ data);'? – Ohgodwhy

+0

爲此使用中間件。創建可終止的一個,並簡單地讓它返回你想要的。 –

+0

試試這個http://tekina.info/creating-general-api-responder-laravel/ –

回答

4

在控制器返回JSON只是return $data;

有關錯誤一JSON響應,去app\Exceptions\Handler.php文件,並期待在render方法。

您應該能夠重新寫它看起來是這樣的:

public function render($request, Exception $e) 
{ 
    // turn $e into an array. 
    // this is sending status code of 500 
    // get headers from $request. 
    return response()->json($e, 500); 
} 

然而,你將不得不決定如何處理$e做,因爲它需要一個array。您還可以設置狀態碼和標題數組。

但是,如果出現任何錯誤,它將返回一個JSON響應。

編輯:這也是很好的注意,你可以改變report方法來處理laravel如何記錄錯誤。更多信息here

+0

這將返回行xdeubg消息,我需要laravel調試響應 –

+0

@MustafaDwekat,我猜測它結束了工作?你需要改變我的答案嗎?如果是這樣,讓我知道,我會更新它。 – DuckPuncher

+0

在那裏玩了一段時間後,我實際上可以得到我想要的任何東西。非常感謝。這很有幫助。 –