Все ответы через единую точку выхода

Я ищу рекомендации от опытных разработчиков Lumen / Laravel для решения следующей задачи: я хочу, чтобы все ответы проходили через один класс / метод.

Я пишу небольшой API с использованием Lumen, и нет проблем с возвратом JSON, однако я не хочу иметь return response()->json(['name' => 'Abigail', 'state' => 'CA']); в каждом методе, который возвращает.

Что делать, если позже есть бизнес-случай, где мне нужно добавить token => 'secret' абсолютно все конечные точки? Поэтому я хотел бы иметь единую точку выхода и задаться вопросом, что является лучшим для достижения этой цели.

Промежуточное? Можно ли перехватить все непосредственно перед тем, как его вернуть? Я знаю, что у нас есть промежуточное промежуточное программное обеспечение, однако оно запускается после отправки ответа в браузер.

Я ищу вариант написания своего собственного помощника или есть основная функция Lumen / Laravel, поддерживающая эту потребность?

0

Решение

Laravel поддерживает макросы ответов, которые позволяют вам изменять ваши ответы любым удобным для вас способом.

Вы можете найти документацию для этого здесь: https://laravel.com/docs/5.5/responses#response-macros

По сути, это позволяет вам изменять любой ответ, который вызывает макрос, практически любым способом, который вы выберете.

Так что, если вы хотите добавить токен в ваши запросы, вы можете сделать

public function boot()
{
Response::macro('myresponse', function ($value) {
$token = getTokenFromSomwehere();
return Response::make([
'token' => $token,
'user' => $value['user'],
etc...
]);
});
}

затем при возврате ответа в вашем приложении return response()->myresponse($values)

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector