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'); }); });