Laravel web.php是否仍然相关?

时间:2019-04-12 08:40:20

标签: laravel

我是Laravel的初学者,我看到很多人使用RestAPI,因此在laravel路由中使用了api.php而不是web.php。

我目前正在使用laravel进行一个项目,并且仅具有CRUD功能,但我从web.php中的所有路由入手。

在laravel中使用web.php路由是否仍然有用?

我问过我的一些同事,他们的确回答我,使用api.php现在在创建项目时很重要。我只想了解其他开发人员对此的看法。

2 个答案:

答案 0 :(得分:2)

这取决于您要构建的内容,如果要构建网站,请使用web.php作为路由,因为默认情况下应用于它们的中间件与api.php上的中间件不同。如果您尝试构建REST API,请使用api.php。 这些目的是为了实现不同的目标,而不是用另一个目标代替。

web.phpapi.php只是php文件,用于对应用中间件的路由进行分组,将中间件应用于已经为您编写的中间件,您可以在app/Providers/RouteServiceProvider.php上检查其定义,还可以对其进行修改,删除或创建你自己。 只是框架已经为您定义了这两个,这对于让用户每次web routes recibe a middleware group called web, and a middleware group called api, both described in the default middleware groups from the official documentation进行定义来说可能太常见了。正如那里提到的:

  

开箱即用,Laravel附带了Web和api中间件组,其中包含您可能要应用于Web UI和API路由的常见中间件

api组仅包含限制,而web组包含在Web UI路由上需要的内容,例如CsrfToken,Session,Cookie等...

答案 1 :(得分:0)

您可以根据需要在app / providers / RouteServiceProvider中创建自己的路由文件 就我而言,我创建了admin.php

protected function mapAdminRoutes()
    {
        Route::group([
            'middleware' => ['web', 'admin', 'auth:admin'],
            'prefix' => 'admin',
            'as' => 'admin.',
            'namespace' => $this->namespace,
        ], function ($router) {
            require base_path('routes/admin.php');
        });
    }

public function map()
    {
        $this->mapApiRoutes();

        $this->mapWebRoutes();

        $this->mapAdminRoutes();
    }