适用于前端VueJS的Laravel Web路由或API路由

时间:2018-09-10 21:47:36

标签: laravel vue.js element

我们目前正在使用VueJS作为前端javascript框架,使用Element.io作为CSS框架来开发多页应用程序。

我们不会公开任何Web服务或某种形式的服务。

我们的应用程序具有响应能力-用户可以使用台式机和移动设备创建记录。

我是否需要创建API路由或WEB路由就足够了? 您能想到我需要API路由的任何情况吗?

1 个答案:

答案 0 :(得分:2)

Web路由用于前端视图,而API路由则用于API调用,您肯定需要将它们分开,因为您的VueJS将使用JSON来对API进行调用并获得JSON响应,并返回错误代码来处理错误有效率的。

网络控制器:

return view('blade_file')->with(compact('var1', 'var2'));

如果在此处设置错误代码,它将显示该错误代码的刀片文件,例如。 404将在./resources/views/errors/404.blade.php处显示刀片视图文件,但您的应用程序将期望JSON响应而不是HTML响应。

API控制器:

return response()->json(compact('var1', 'var2'), 200); // success

return response()->json(['error' => 'bad request'], 400); // bad request

如果您在此处设置错误代码,则仍然会得到JSON响应,只是带有指定的错误代码。

结论:

使用不同的API和Web路由将前端和后端分开,因为请求/响应的处理方式不同。

注释:

  • 向此API发出ajax / axios请求时,请记住add your CSRF token in your header
  • 确保您的中间件为api。如果该API仅允许经过身份验证的用户,则您需要将中间件设为auth:api,并且需要使用Laravel Passport
  • 请记住,将Api的命名空间添加到routes/api.php文件或app/Providers/RouteServiceProvider.php中的API路由中。