我是Laravel的初学者,我看到很多人使用RestAPI,因此在laravel路由中使用了api.php而不是web.php。
我目前正在使用laravel进行一个项目,并且仅具有CRUD功能,但我从web.php中的所有路由入手。
在laravel中使用web.php路由是否仍然有用?
我问过我的一些同事,他们的确回答我,使用api.php现在在创建项目时很重要。我只想了解其他开发人员对此的看法。
答案 0 :(得分:2)
这取决于您要构建的内容,如果要构建网站,请使用web.php
作为路由,因为默认情况下应用于它们的中间件与api.php
上的中间件不同。如果您尝试构建REST API,请使用api.php
。
这些目的是为了实现不同的目标,而不是用另一个目标代替。
web.php
和api.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();
}