Dingo 版本无法覆盖问题
$api->version('v2.3', ['namespace' => 'App\Http\Controllers\V2'], function($api) {
$api->get('video/{id}', 'VideoController@index');
});
$api->version(['v2.2', 'v2.3'], ['namespace' => 'App\Http\Controllers\V1'], function($api) {
$api->get('video/{id}', 'VideoController@index');
});
$api->version([ 'v2.0', 'v2.2', 'v2.3'], ['namespace' => 'App\Http\Controllers\V0'], function($api) {
$api->get('video/{id}', 'VideoController@index');
});
Dingo路由配置如上, 版本分别为2.0, 2.2, 2.3, 然后分别对应3个控制器
API_STANDARDS_TREE=vnd
API_DOMAIN=app.lcgod.com
API_VERSION=v2.0
API_SUBTYPE=foobar
API_NAME="MyApp"
API_STRICT=false
env文件设置如上
Accept设置为 application/vnd.foobar.v2.3+json 访问 app.lcgod.com/video/1 匹配到第二个路由
但是Accept设置为 application/vnd.foobar.v2.2+json 访问 app.lcgod.com/video/1 匹配到的还是是第二个路由
请问Dingo的路由匹配为什么是从中间的代码开始匹配的?
2.0版本的路由被中间的2.2覆盖了
2.3版本的路由为什么还能被中间的2.2覆盖?
而且还有个问题 Dingo版本如何进行控制, 以上写法, 我兼容以前版本的代码, 必须每次都在老版本的version里面加一个版本号, 现在只有3个版本, 第三行的version数组里已经有v2.0, v2.2, v2.3 一共3个版本号了
等我更新了10个版本, 那我岂不是要在最后一个version数组里写10个版本号?
推荐文章: