2016-04-01 2 views
7

Я пытаюсь построить REST API с помощью Laravel Framework, я хочу способ заставить API всегда responed с JSON не делая это manulaly нравится:Как вы нажимаете ответ JSON на каждый ответ в Laravel?

return Response::json($data); 

Другими словами, я хочу, чтобы каждый ответ быть JSON. Есть ли хороший способ сделать это?

Update: Ответ должен быть JSON даже исключения, как не нашло исключения.

+1

Итак, вы хотите написать 'return $ data' и перевести его в' return 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

Поиграв там некоторое время, я на самом деле могу получить то, что от него хочу. Большое спасибо. это было полезно. –

Смежные вопросы