route配置:
$api = app('Dingo\Api\Routing\Router');
$api->version('v1', ['namespace' => 'App\Http\Controllers\NoAuth'], function ($api) {/
$api->post('/tourist/init', 'TestController@area');
});
$api->version('v2', ['namespace' => 'App\Http\Controllers\NoAuth\v2'], function ($api) {
$api->post('/tourist/init', 'NewTestController@area');
});
请求头格式:
Accept: application/vnd.YOUR_SUBTYPE.v1+json
.env 配置:
// .env 配置
// Standards Tree 一共提供了3种tree,x, prs, vnd
// x: unregistered tree 本地或是私有环境
// prs: personal Tree 项目不是用于商业发布
// vnd: vender tree用于公开的商业项目
API_STANDARDS_TREE=vnd
API_SUBTYPE=api // 项目或工程的简称
API_PREFIX=api // API前缀
API_VERSION=v1 // 当请求头无参数时,将会默认走V1版本
API_DEFAULT_FORMAT=json // 返回格式 默认的数据以json进行前后端的传递
实际例子:
请求v1
有2
种方式,
-
通过默认方式,不带任何版本信息,就会走
v1
-
在请求头中,带Accept参数,指定
v1
路由Accept: application/vnd.api.v2+json
请求v2
版本,请求头中带以下参数
Accept: application/vnd.api.v2+json
在访问未定义的版本,比如指定请求v3
版本,则提示如下
请求头:
Accept: application/vnd.api.v3+json
返回值:
{
"message": "The version given was unknown or has no registered routes.",
"status_code": 400
}