我正在使用Laravel路由组通过api.example.com和www.example.com调用我的控制器
Route::group(['domain' => Config::get('app.api_server')], function ()
{
//API entry point
});
Route::group(['domain' => Config::get('app.web_server')], function ()
{
//Web Application entry point
});
然而,当我向API发出请求时,路由组的Web应用程序部分中的所有业务逻辑和数据库查询仍然会被执行,这对我们的用例来说是低效且不必要的。反之亦然,进入Web会执行API入口点内的所有代码。如何防止不相关的代码执行?
答案 0 :(得分:2)
回调函数闭包是作为对Route :: group()的调用的一部分执行的,因此无法阻止回调的执行。但是,您可以首先防止路由被定义。
// only create the api routes if the current request is for the api
if (Request::getHttpHost() == Config::get('app.api_server')) {
Route::group(['domain' => Config::get('app.api_server')], function ()
{
//API entry point
});
}
// only create the web app routes if the current request is for the web app
if (Request::getHttpHost() == Config::get('app.web_server')) {
Route::group(['domain' => Config::get('app.web_server')], function ()
{
//Web Application entry point
});
}