所有回复都通过单点退出

时间:2017-11-01 08:08:26

标签: php laravel lumen

我正在寻找经验丰富的Lumen / Laravel开发人员对以下挑战的指导:我希望所有回复都通过单一的课程/方法。

我使用流明对一个小API进行编码,返回JSON没有问题,但是我不想在每个返回的方法中都有return response()->json(['name' => 'Abigail', 'state' => 'CA']);

如果以后出现业务案例,我需要将token => 'secret'添加到绝对所有终点,该怎么办?因此,我希望有一个单一的退出点,并想知道实现这一目标的最佳方式。

中间件?是否有可能在返回之前拦截所有内容?我知道我们有可终止的中间件,但是在响应发送到浏览器之后才会运行。

我是否正在考虑编写自己的帮助程序的选项,还是有支持此需求的核心Lumen / Laravel功能?

1 个答案:

答案 0 :(得分: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)