laravel中api中间件的作用是什么

2024-01-02

我在 laravel 8 有一个简单的问题

我测试了两个代码,但没有发现任何差异。它们对我来说看起来一样。即使我点击了很多时间,两者都给了我“太多的请求”。

Route::middleware('api')->get('/user', function (Request $request) {
    return "aaa";
});

Route::get('/user', function (Request $request) {
    return "aaa";
});

'throttle:api' 和 SubstitueBindings 的作用是什么?

    'api' => [
        'throttle:api',
        \Illuminate\Routing\Middleware\Substitu\Illuminate\Routing\Middleware\SubstituteBindings::classteBindings::class,
    ],

在同一个文件中kernel.php你会发现中间件web请求这是默认模式。

'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

So web用于有状态请求,带有会话、cookie、csrf 令牌、会话身份验证......

And api用于无状态请求,因此没有上述功能,但使用另一个中间件throttle它通过 IP 限制每分钟的请求数量(检查限制配置,默认 60/mn)。

The 替代绑定两者都是通用的,它处理路由声明中配置的参数的绑定。

通常,您不会将这两个堆叠在一起。要使用它们,请使用已存在的文件web.php and api.php。这是如何运作的 ?检查内容App\Providers\RouteServiceProvider

public function boot()
    {
        $this->configureRateLimiting();

        $this->routes(function () {
            Route::prefix('api')
                ->middleware('api')
                ->namespace($this->namespace) //the value here is \App\Http\Controllers
                ->group(base_path('routes/api.php'));

            Route::middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/web.php'));
        });
    }

如果您的项目可以分为更多组,您可以编辑此文件。

例如,我曾经用它来创建 5 个不同的组,每个组都有自己的路由文件,因为在公共实体(网络)之上我有 4 个不同的可验证实体(管理员、所有者、用户、审核……),每个组都有它自己的命名空间(控制器基本命名空间)和它自己的会话中间件

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

laravel中api中间件的作用是什么 的相关文章

  • Laravel Valet 不工作。 127.0.0.1 连接被拒绝

    试图让代客泊车设置正常工作 当访问 127 0 0 1 时 连接被拒绝 这是我在访问 dev 站点设置之一时收到的消息 我已经确保 apache 已停止 并且一直在谷歌上搜索所有地方 但无法找到解决方案 有没有人遇到过这个或对下一步尝试什么
  • laravel 正则表达式验证不起作用

    我刚刚开始使用 laravel 正在努力验证我的表单之一中的文本区域 文本区域用于用户简介 因此我只想允许使用字母 数字 空格和以下字符 这就是我所拥有的 validator Validator make Input all array b
  • 简单来说,Laravel IoC 容器是什么?

    谁能用简单易懂的语言解释依赖注入和 IoC 容器 因为我是 Laravel 的初学者 谢谢 答案变得比我最初想要的要长 我提供了一些背景信息 不过 如果您正在寻找短期解释 请阅读 IoC 容器的第一段和粗体段落 依赖注入 依赖注入是一种设计
  • Laravel 5.7:维护模式的自定义刀片模板,但不是 503.blade.php

    每次php artisan down开启后 Laravel 显示 503 页面 好的 我可以通过创建名为的新文件来自定义它503 blade php inside resources views errors 关键是 我在任何时候都不认为维
  • Laravel Blade 中的动态行数

    我想要像这样的表中有动态的行数 number name 1 Devy 这是我的 Blade 模板 thead th number th th name th thead tbody foreach aaa as value tr td td
  • 我需要在服务器上安装 Composer 吗?

    我正在尝试部署 Laravel 应用程序 想知道 Composer 是否需要单独安装在服务器上 不 您可以在单独的服务器上构建应用程序 或者在团队中工作时在开发计算机上不太理想 然后将项目 包括已安装的供应商 复制到您的服务器上 事实上 在
  • 使用factory faker创建的图像在存储在storage/public/images文件夹中时会被删除

    我正在尝试用假图像填充我的数据库 但是当 faker 将其保存到我的图像文件夹中时 一秒钟后它被删除 并且在我的数据库字段中我得到 0 我可以访问http lorempixel com http lorempixel com 也可以 pin
  • Eloquent/Laravel 三路多对多关系

    我对 Laravel 和 Eloquent 是全新的 而且我对 ORM 的经验也很少 假设我有三个数据库表 Widgets Actions Users 我建模了一个连接表 其中包含以下列 widget id action id user i
  • Laravel 5 / Codeception 未正确路由

    我正在尝试使用代码接收为控制器函数编写 API 测试用例 但遇到了一个问题 即控制器函数的路由似乎未正确评估 并且评估似乎根据我的不同而不同我的测试用例中有 这是我的测试用例中的代码示例 use ApiTester class Custom
  • Laravel Sum 列数据库 Eloquent

    尝试获取我的一个表中 int 字段的总和应该非常容易 不幸的是 事实并非如此 因为无论我使用 Laravel MySQL 还是 Excel 我都会得到不同的结果 Laravel 5 4 给了我20506 Table sum field na
  • 找不到类“App\Http\Controllers\Auth\User”

    我该如何解决这个 Laravel 错误 Class App Http Controllers Auth User not found 我正在为博客创建一个寄存器 并且使用以下内容 User create name gt request gt
  • 如何比较两个碳时间戳?

    我有两个时间戳 edited at 我创建的 和created at Laravel 的 在数据库中 两者都有时间戳类型和默认值 0000 00 00 00 00 00 但是 var dump edited at variable 正在给出
  • 开始使用 Chef,并在部署时运行 Composer 安装

    我们希望部署一些Laravel4 http laravel com使用 OpsWorks 在亚马逊上基于 PHP 应用程序 这需要满足以下条件 从 git 抓取代码 从 getcomposer com 下载composer phar Run
  • Laravel 5 配置语言环境,不起作用

    已完成的修改 on 配置 应用程序 php locale gt env APP LOCALE en fallback locale gt en on env APP LOCALE pt 我也复制了 资源 lang en文件到 资源 lang
  • Laravel 5.1 Snappy pdf 图像未在 pdf 文件中呈现

    我在用barryvdh laravel snappy生成pdf文件 我有两个图像文件 1 yourlogohere png 位于 public image 文件夹中 2 logo2 png 位于 public app logo 以外的文件夹
  • 将动态值传递给 Laravel max 验证规则

    我正在开发一个销售 laravelcollective 表单 其中销售数量进入不能大于DB中的stock quantity 当我在以下位置使用这个想法时 Laravel 使用自定义消息验证动态添加的输入 https stackoverflo
  • 正确设置 Laravel 5 CSRF 令牌的标头

    好吧 已经搜索这个问题好几个小时了 只是找不到解决方案的开始 我正在使用 angularJS 前端和 laravel 后端 Restangular 是我的通讯服务 我的 POST 很好 因为我可以在数据中包含 token 并且它会起作用 但
  • 记录 http.ResponseWriter 内容

    Premise 我发现了类似的问题 但不适用于我的情况 因此请不要将其标记为重复 我在 Go 中有一个 HTTP 服务器 并且创建了一个中间件记录请求 响应时间 我也想记录响应 我用过httputil DumpRequest在一个名为的函数
  • laravel 5.3 中如何在没有 auth:api 中间件的情况下对用户进行身份验证?

    我有一条任何用户都可以访问的公共路线 timeline 在此操作中 如果用户通过身份验证 我必须向他显示他是否喜欢该帖子 如果路线有auth api我可以使用中间件获得经过身份验证的用户 request gt user 但如果我不使用aut
  • Laravel 规则和正则表达式 (OR) 运算符的问题

    我的 Laravel 规则和正则表达式操作有一个小问题 基本上 规则是一个数组 如下所示 room gt required alpha num min 2 max 10 我遇到的问题是使用正则表达式和 时 或 运算符 例如 cid gt r

随机推荐