最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • laravel访问节流限制及内部调用介绍

    正文概述 转载于:掘金(陆景学)   2021-08-19   613

    这是我参与8月更文挑战的第19天,活动详情查看:8月更文挑战

    一、访问节流的限制

    routes\api.php中写入访问节流的限制代码:

    <?php
    
    $api = app('Dingo\Api\Routing\Router');
    
    $api->version('v1',  ['middleware' => 'api.throttle', 'limit' => 3, 'expires' => 1,], function ($api) {
        $api->get('index', [\App\Http\Controllers\TestController::class, 'index']);
    
        // 命名路由
        $api->get('nickname', ['as' => 'test.nickname', 'uses' => '\App\Http\Controllers\TestController@nickname']);
    
        // 执行登陆
        $api->post('login', [\App\Http\Controllers\TestController::class, 'login']);
    
        // 需要登陆的路由
        $api->group(['middleware' => 'api.auth'], function($api) {
            $api->get('users', [\App\Http\Controllers\TestController::class, 'users']);
        });
    
    });
    
    

    laravel访问节流限制及内部调用介绍 接下来我们用postman点击4次,前3次都正常,最后一次: laravel访问节流限制及内部调用介绍

    二、内部调用

    2.1 构建一个分发器实例来发起内部请求

    1、普通请求

    routes\api.php下构建:

     // 内部调用
     $api->get('in', [\App\Http\Controllers\TestController::class, 'in']);
    

    TestController控制器下写入in方法:

    public function in() {
            // 构建分发器实例
            $dispatcher = app('Dingo\Api\Dispatcher');
            // 进行内部请求
            $users = $dispatcher->get('api/index');
            return $users;
        }
    

    效果: laravel访问节流限制及内部调用介绍

    2、模拟认证用户请求

    laravel访问节流限制及内部调用介绍 文档这里be方法是用户实例,在用户请求的时候肯定有传token,那么我们在这里演示的话直接从数据库取一个用户:

            // 模拟用户
            $user = User::find(1);
            $users = $dispatcher->be($user)->get('api/users');
            return $users;
    

    效果: laravel访问节流限制及内部调用介绍

    三、请求api版本

    laravel访问节流限制及内部调用介绍 laravel访问节流限制及内部调用介绍 laravel访问节流限制及内部调用介绍

    四、命令行工具与api文档

    4.1 查看api路由

    laravel访问节流限制及内部调用介绍 laravel访问节流限制及内部调用介绍

    4.2 生成api文档

    生成api文档链接 例子:

        /**
         * 用户登陆
         *
         * 使用 `username` 和 `password` 登陆用户。
         *
         * @Post("/login")
         * @Versions({"v1"})
         * @Transaction({
         *      @Request({"username": "foo", "password": "bar"}),
         *      @Response(200, body={"id": 10, "username": "foo"}),
         *      @Response(422, body={"error": {"username": {"Username is already taken."}}})
         * })
         */
    

    laravel访问节流限制及内部调用介绍 运行生成文档命令行命令: php artisan api:docs --output-file /home/vagrant/code/shopApi/document.md laravel访问节流限制及内部调用介绍 效果(可以看到多了个document.md文件): laravel访问节流限制及内部调用介绍 但是这种查看有它自己的局限性,我们一般可以用线上的文档像showDocs。但是也要知道这种用命令直接生成的md的文档。 laravel访问节流限制及内部调用介绍

    五、常见状态码

    2xx:请求成功,表示成功处理了请求的状态代码。

    3xx:请求被重定向,表示要完成请求,需要进一步操作,通常这些状态代码用来重定向。

    4xx:请求错误,这些状态代码表示请求可能出错,妨碍了服务器的处理。

    5xx:服务器错误,这些状态代码表示服务器在尝试处理请求时发生内部错误,这些错误可能是服务器本身的错误,而不是请求出错。


    起源地下载网 » laravel访问节流限制及内部调用介绍

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元