leravel 7 和 dingo 3 的使用 与jwt配合

1 安装

1.1 选择版本

选择你要的版本。https://packagist.org/packages/dingo/api

不同leravel对应不同的dingo

1.2 安装

 composer require dingo/api

1.3 配置

发布配置文件

php artisan vendor:publish

.env

API_VERSION=v1
API_DEBUG=true
API_DOMAIN=http://api.ttt.com
API_PREFIX=api

2 创建端点(路由)

2.1 端点

outesapi.php

$api = app('DingoApiRoutingRouter');
$api->version('v1',function ($api){
    $api->get('/test/foo','AppHttpControllersApiTestController@foo');
});

2.2 基础控制器

php artisan make:controller BaseController

appHttpControllersBaseController.php

<?php

namespace AppHttpControllers;

use DingoApiRoutingHelpers;
use IlluminateRoutingController;

class BaseController extends Controller
{
    //
    use Helpers;
}

2.3 继承控制器

 php artisan make:controller ApiTestCroller

appHttpControllersApiTestController.php

<?php


namespace AppHttpControllersApi;

use IlluminateHttpRequest;

use AppHttpControllersBaseController ;

class TestController extends BaseController
{
    public  function  foo()
    {
        return $this->response->array(['error'=>'200','data'=>['路由成功']]);
    }
}

3 测试

php artisan api:routes

4  添加jwt 中间件

$api->version('v1',function ($api){
    $api->get('/test/foo','AppHttpControllersApiTestController@foo');
});
$api->version('v1',['middleware'=>'jwt_auth'],function ($api){
    $api->get('/test/foo2','AppHttpControllersApiTestController@foo2');
});

$api->version('v1',function ($api){
    $api->get('/test/foo','AppHttpControllersApiTestController@foo');
    $api->group(['middleware'=>'jwt_auth'],function ($api){
        $api->get('/test/foo2','AppHttpControllersApiTestController@foo2');
    });
});

$api->version('v1',function ($api){
    $api->group(['middleware'=>'jwt_auth'],function ($api){
        $api->get('/test/foo','AppHttpControllersApiTestController@foo');
        $api->get('/test/foo2','AppHttpControllersApiTestController@foo2');
    });
});
原文地址:https://www.cnblogs.com/polax/p/14655118.html