Dingo

一、介绍

  • Dingo文档
  • Dingo安装包地址
    • dingo api包是给laravel和lumen提供的Restful的工具包,它可以与jwt组件一起配合快速的完成用户认证,同时对于数据和运行过程中所产生的异常能够捕获到并且可以做出对应的响应。

二、安装步骤

  1. 安装发布
//composer安装
composer require dingo/api:2.0.0-alpha2

//安装完后发布配置文件
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
  1. 配置
    注意:当引用了dingo之后,laravel中自带的路由api就会失效。会直接被dingo的路由服务进行接管。
  • .env配置
    在这里插入图片描述
 # dingo
//配置信息详情见文档
API_STANDARDS_TREE=prs 
API_SUBTYPE=teach
API_PREFIX=api
API_VERSION=v1
API_DEBUG=true
  1. api路由配置
//dingo与jwt配合认证
$api = app('Dingo\Api\Routing\Router');
$api->version('v1',[
    'namespace' => 'App\Http\Controllers\Api\V1',
    'middleware' =>['bindings']
], function ($api) {
    $api->post('login', 'AuthController@login');
    $api->post('logout', 'AuthController@logout');
    $api->post('refresh', 'AuthController@refresh');
    $api->get('user', 'AuthController@user')->middleware('auth:api');
});
  1. 版本控制
    需要在header中加入Accept:application/prs.teach.v2+json
    注意:teach 是在.env 中配置 API_SUBTYPE=teach,而prs 是在.env中配置的API_STANDARDS_TREE=prs
    5.返回
    在这里插入图片描述
  2. 路由别名
    因为与dingo接管了api的路由服务,所以laravel自带的route就不会加载api中的路由,会出现如下情况:
    在这里插入图片描述
    解决方法:
  • 第一种: 在\vendor\dingo\api\src\helpers.php下增加如下内容
if (!function_exists('api_route')) {

    function api_route($name, $parameters = [], $version = 'v1', $absolute = true)
    {
        return version($version)->route($name, $parameters, $absolute);
    }
}

这种方式存在缺陷,如果使用composer update进行版本更新,自定义的方法将被覆盖。

  • 第二种
    在app创建Support/helpers.php文件,复制第一种方法的内容。
    然后在项目的根目录下的composer.json中加入如下内容:
"files": [
            "app/Support/helpers.php"
        ],

执行composer dump-autoload

  • 方法使用:
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值