前端使用 VueJS 的应用程序的 Laravel Web 路由或 API 路由

Kru*_*uze 4 element laravel vue.js

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

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

我们的应用程序是响应式的 - 用户可以使用桌面和移动设备创建记录。

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

emo*_*ity 5

Web 路由用于前端视图,其中 API 路由用于 API 调用,您肯定需要将它们分开,因为您的 VueJS 将使用 JSON 调用您的 API 并获得带有错误代码的 JSON 响应作为回报,以有效地处理您的错误。

网页控制器:

return view('blade_file')->with(compact('var1', 'var2'));
Run Code Online (Sandbox Code Playgroud)

如果您在此处设置错误代码,它将显示该错误代码的刀片文件,例如。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
Run Code Online (Sandbox Code Playgroud)

如果您在此处设置错误代码,您仍将获得 JSON 响应,只是指定了错误代码。

结论:

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

笔记:

  • 请记住向此 API 发出 ajax/axios 请求时在标头中添加您的 CSRF 令牌
  • 确保您的中间件是api. 如果 API 只允许经过身份验证的用户,则需要中间件,auth:api并且需要使用Laravel Passport
  • 请记住将 的命名空间添加Api到您的 API 路由中,在routes/api.php文件或app/Providers/RouteServiceProvider.php.