Laravel 8 中的 API

Posted

技术标签:

【中文标题】Laravel 8 中的 API【英文标题】:API in Laravel 8 【发布时间】:2021-02-10 08:50:35 【问题描述】:

我正在一个 laravel-8 项目中使用 API。但我对 API 的工作方式完全感到困惑。 web.phpapi.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的主要内容,如果未能解决你的问题,请参考以下文章

使用 API Laravel 时出现文件放置错误

未经身份验证的 api laravel 子域

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 命令崩溃

Laravel 8 中的 API