Sig*_*avi 17 laravel-5 laravel-5.3
我有一个问题对你来说可能听起来很傻,所以请原谅我.
我不确定何时使用routes/api.php文件.
如果我想从带有ajax的数据表中删除记录,我是否需要创建一个单独的控制器并将路径放在api.php中,或者我可以使用我用于其他所有的相同控制器并将路由放在web.php中?
ber*_*add 18
我不确定您是否阅读过Laravel文档或者您对Laravel有多熟悉,但在Laravel 5.3中,您在单独的文件中有Web路由和api路由.
您只使用api路由来注册您的api(即,如果您正在构建rest api服务),并且那里放置的所有路由将默认带有/ api前缀.因此,如果您在api文件中定义路由/用户,它将自动以/ api为前缀,因此您的终点将是www.yourapplication.com/api/user.
如果您没有构建rest api服务或任何类似的东西根本不使用此文件,请使用Web文件来定义所有应用程序路由.
还可以考虑访问Laracast网站,因为他们很好地介绍了Laravel 5.3中的新变化,包括web和api路由.希望这对你有所帮助.
放在api.php中的所有路由都将以/ api为前缀,bernadd也提到了这一点,还有其他差异:在此链接中(https://mattstauffer.co/blog/routing-changes-in-laravel-5 -3)你可以在laravel代码中找到api和web之间的区别:
在App\Providers\RouteServiceProvider中:
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
//
}
protected function mapApiRoutes()
{
Route::group([
'middleware' => ['api', 'auth:api'],
'namespace' => $this->namespace,
'prefix' => 'api',
], function ($router) {
require base_path('routes/api.php');
});
}
protected function mapWebRoutes()
{
Route::group([
'namespace' => $this->namespace, 'middleware' => 'web',
], function ($router) {
require base_path('routes/web.php');
});
}
Run Code Online (Sandbox Code Playgroud)
在"受保护的$ middlewareGroups"中的App\Http\Kernel.php中,您可以看到:
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
Run Code Online (Sandbox Code Playgroud)
并且: 在config\auth.php中:在这个文件的评论中,您可以清楚地找出默认"auth"('guard'=>'web')与"auth:api"之间的区别
| 归档时间: |
|
| 查看次数: |
10222 次 |
| 最近记录: |