laravel 使用 Dingo开发api
2018-03-13 11:03
666 查看
1、修改composer.json
“require”: {“dingo/api”:”1.0.*@dev”}
2、执行composer update命令安装dingoapi
3、打开config/app.PHP
在providers中添加Dingo\Api\Provider\LaravelServiceProvider::class
运行phpartisan vendor:publish –provider=”Dingo\Api\Provider\LaravelServiceProvider”
运行成功后会生成routes/api.php 和 config/api.php文件
4、配置.env文件
加上API_PREFIX=api
其余全部是默认设置
5、修改routes/api.php 文件,设置路由
访问域名,XXXX/api/test 路由中的 XXX为laravel的路由 api为API_PREFIX设置的前缀, test 为 routes/api.php 文件中对应的路由
关于Dingo 认证
自定义认证
https://github.com/liyu001989/dingo-api-wiki-zh/blob/master/Authentication.md
你的 config/api.php 文件中配置它。
关于API Blueprint,生成markdown写法文档
关于路由列表
转自:飘易博客
“require”: {“dingo/api”:”1.0.*@dev”}
2、执行composer update命令安装dingoapi
3、打开config/app.PHP
在providers中添加Dingo\Api\Provider\LaravelServiceProvider::class
运行phpartisan vendor:publish –provider=”Dingo\Api\Provider\LaravelServiceProvider”
运行成功后会生成routes/api.php 和 config/api.php文件
4、配置.env文件
加上API_PREFIX=api
其余全部是默认设置
5、修改routes/api.php 文件,设置路由
$api = app('Dingo\Api\Routing\Router'); $api->version('v1', function ($api) { $api->group(['namespace' => 'App\Http\Controllers\Api\V1', 'middleware' => ['api.throttle', 'api.auth']], function ($api) { $api->get('/test', 'TestController@index'); }); }); 中间件可以自定义 在对应的目录中创建 TestController.php index 方法
访问域名,XXXX/api/test 路由中的 XXX为laravel的路由 api为API_PREFIX设置的前缀, test 为 routes/api.php 文件中对应的路由
关于Dingo 认证
自定义认证
https://github.com/liyu001989/dingo-api-wiki-zh/blob/master/Authentication.md
你的 config/api.php 文件中配置它。
'auth' => [ 'custom' => 'App\Http\Controllers\Api\Auth\SignProvider', ],
Dingo 更多功能
设置ip访问频次 //OAuth路由 //Get access_token / Rate Limiting 每IP限制 $api->post('oauth/access_token', [ 'middleware' => 'api.throttle', 'limit' => 120, //频次 'expires' => 1, //分钟 'uses' => 'OAuthController@access_token' ]); //设置别名。验证字段 //grant type: authorization code GET $api->get('oauth/authorize', ['as' => 'oauth.authorize.get', 'middleware' => ['check-authorization-params', 'auth'], 'uses' => 'OAuthController@getAuthorize']); //grant type: authorization code POST $api->post('oauth/authorize', ['as' => 'oauth.authorize.post', 'middleware' => [ 'csrf', 'check-authorization-params', 'auth'], 'uses' => 'OAuthController@postAuthorize']); //校验权限 // api.auth 中间件包含了所有oauth验证(oauth,oauth-user,oauth-client) $api->group(['middleware' => ['api.auth']], function ($api) { // 部门 $api->get('department', 'DepartmentController@index'); $api->post('department', 'DepartmentController@store'); $api->put('department', 'DepartmentController@update'); $api->delete('department', 'DepartmentController@destroy'); //Rate Limiting 每IP每1分钟限制访问2次 $api->get('department/test', [ 'middleware' => 'api.throttle', 'limit' => 2, //频次 'expires' => 1, //分钟 'uses' => 'DepartmentController@test' ]); //用户 $api->get('user', 'UserController@index'); //仅允许特定授权 oauth-user $api->get('user/current', ['middleware' => 'oauth-user', 'uses' => 'UserController@current']); $api->get('user/{id}', 'UserController@show'); });
关于API Blueprint,生成markdown写法文档
php artisan api:doc --output-file "D:\api.apib" 然后利用aglio github地址:https://github.com/danielgtaylor/aglio npm install -g aglio aglio -i "D:\api.apib" -o "D:\api.html" //生成html的api文档
关于路由列表
php artisan route:list Laravel中缓存路由的命令: php artisan route:cache 而dingo api缓存路由的命令是: php artisan api:cache
转自:飘易博客
相关文章推荐
- laravel 5.5 使用 dingo 开发 API
- Lumen上使用Dingo/Api做API开发时用JWT-Auth做认证的实现
- Lumen上使用Dingo/Api做API开发时用JWT-Auth做认证的实现
- laravel和dingoapi的结合使用
- laravel和dingoapi的结合使用
- Laravel5.3开发API(Dingo+Passport+Swagger)
- Laravel5.5+passport 放弃 dingo 开发 API 实战,让 API 开发更省心
- Laravel 5 开发API(Dingo Api + JWT)
- laravel之dingoapi的使用
- laravel 开发RestFul接口【一、集成三方扩展 - dingo/api】
- Lumen上使用Dingo/Api做API开发时用JWT-Auth做认证的实现
- arcgis api for flex 开发入门(八)GP服务的使用
- arcgis api for flex 开发入门(九)webservices 的使用<转>
- 使用Axis2的底层API开发Web Service
- ArcGIS API for Silverlight开发入门(7):使用非AGS数据源的图层<转>
- 使用开放 API 和工具快速开发情景式 mashup 应用
- ArcGIS API for Silverlight开发入门(8):在程序中使用Virtual Earth
- ArcGIS API for Silverlight开发入门(7):使用非AGS数据源的图层
- arcgis api for flex 开发入门(三)地图浏览控件的使用<转>
- 解决使用MySQL C-API开发应用时的连接超时问题