1、进入项目目录,执行composer安装命令
composer require dingo/api

安装成功。
2.生成配置文件。
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"

执行成功后 config目录生成api.php文件。

api.php文件的中的配置项可以.env中设置,下面进行基本配置:
API_STANDARDS_TREE=prs
API_STANDARDS_TREE 有是三个值可选
x 本地开发的或私有环境的
prs 未对外发布的,提供给公司 app,单页应用,桌面应用等
vnd 对外发布的,开放给所有用户
API_SUBTYPE=kentcms
API_SUBTYPE是我们项目的简称,全小写。
通过以上两项的设置,可使用Accept 头来访问不同API 版方式如下:
访问 v1 版本
Accept: application/prs.kentcms.v1+json
访问 v2 版本
Accept: application/prs.kentcms.v2+json
接口访问方式设置:
API_PREFIX=api
API_PREFIX用来设置api前缀,如aaaxxxccc.com/api方式访问接口。
API_DOMAIN=api.xxxxxxx.com
除前缀方式外,还可为api单独指定访问域名,如 api.aaaxxxccc.com方式访问接口。
API_PREFIX与API_DOMAIN不可同时指定,二者选其一。
API_VERSION=v1 //指定默认访问的版本,未指定Accept版本号时访问此版本
API_DEBUG=true //debug开关
API_STRICT=false //严格模式需要客户端发送 Accept 头,默认false
3.测试效果
找到路由目录下的 routes/api.php 文件,laravel默认已经生成了一个路由
oute::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
将其修改成DingoApi方式
$api = app('Dingo\Api\Routing\Router');
$api->version('v1', function($api) {
$api->get('version', function() {
return response('kent v1');
});
});
$api->version('v2', function($api) {
$api->get('version', function() {
return response('kent v2');
});
});
如果你想一个分组返回多个版本,只需要传递一个版本数组。
$api->version(['v1', 'v2'], function ($api) {
});
使用postman访问接口

在没有指定版本的情况下,访问了v1版,由于开启了debug下方显示了调试信息。
接下来通过加入Accept访问其他版本

网友评论