Laravel 8 中的 API
Posted
技术标签:
【中文标题】Laravel 8 中的 API【英文标题】:API in Laravel 8 【发布时间】:2021-02-10 08:50:35 【问题描述】:我正在一个 laravel-8 项目中使用 API。但我对 API 的工作方式完全感到困惑。 web.php
和 api.php
有什么区别?如何使用 API 进行身份验证检查。以及如何显示 API 的输出(即)作为view
或只是作为JSON or raw output
。我从未使用过 API,而且我也是 laravel 的新手。
提前致谢
【问题讨论】:
【参考方案1】:请阅读documentation。
这两个文件的区别描述在here:
web.php 文件包含 RouteServiceProvider 放置的路由 在提供会话状态的 Web 中间件组中,CSRF 保护和 cookie 加密。如果您的应用程序不提供 一个无状态的 RESTful API,你的所有路由很可能都是 在 web.php 文件中定义
api.php 文件包含 RouteServiceProvider 放置的路由 在提供速率限制的 api 中间件组中。这些 路由是无状态的,所以请求进入 通过这些路由的应用程序旨在通过 令牌,并且无法访问会话状态。
查看文档的this 部分以了解身份验证。
API 返回的内容取决于用例。可以是 JSON/XML/等,也可以是 html。
【讨论】:
【参考方案2】:api 文件完全可以做 web 文件可以做的事情。您可以在RouteServiceProvider
中看到这一点。
唯一的区别是:前缀和中间件。
请阅读文档。
这两个文件之间的区别描述为here。
【讨论】:
【参考方案3】:web.php
用于您的normal web applications routes
。例如,如果您有一个主页和一个关于我们的页面,您将在此处编写他们的路线。
对于api.php
,这是您定义routes that other devices other
的地方,您的Web 应用程序可以与您的应用程序通信。
【讨论】:
以上是关于Laravel 8 中的 API的主要内容,如果未能解决你的问题,请参考以下文章
Laravel - 测试 api 时方法 Illuminate\Auth\RequestGuard::attempt 不存在
Laravel:“$ php artisan route:list”在 App\Http\Controllers\API 中不显示路由列表
Vue - 由于 webpack 版本(vue-cli-service、laravel-mix、webpack)导致 npm run serve 命令崩溃