区分来自 Web 路由和 API 路由的调用?

k65*_*612 4 laravel laravel-5 laravel-5.3

在我的web.php文件中,我有一条如下所示的路线:

Route::get('/', 'HomeController@getFeed');
Run Code Online (Sandbox Code Playgroud)

在我的api.php文件中,我有一条如下所示的路线:

Route::get('feeds', 'HomeController@getFeed');
Run Code Online (Sandbox Code Playgroud)

请注意,它们都调用相同的方法,getFeed()

有没有办法在控制器的方法中区分调用是来自 web 路由还是 API 路由?我需要能够返回两种不同的响应,一种用于 Web 路由,一种用于 API 路由。

这是HomeController.php课程:

class HomeController extends Controller
{
    public function getFeed() {
        $user = Auth::user();

        // How to check if call is from web route or API route?
        // Need to return two different responses for each scenario.
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢。

小智 5

来自 api.php 的所有路由都自动以“api/”为前缀,因此您可以使用下面的代码来检查

    if (Request::is('api*')) {
        echo "request from api route";
        exit();
    }else{
        echo "request from web";
        exit();
    }
Run Code Online (Sandbox Code Playgroud)