php关于API版本控制方案(Larvel)

作者: 分类: laravel 时间: 2016-04-13 评论: 暂无评论

利用头信息中的 HTTP_ACCEPT 控制版本号,再通过版本号来控制命名空间。HTTP_ACCEPT 添加版本号

version=1.0

在项目文件的laravelvendorlaravelframeworksrcIlluminateRoutingRouter.php 添加方法

//定义版本号与命名空间
protected  $NameSpaceMap=array(
            'v1.0'=>'v1',
            'v2.0'=>'v2',
            'v3.0'=>'v3',
);
public function getNameSpace()
{
    $str=$_SERVER['HTTP_ACCEPT'];
    $str=str_replace(';','&',$str);
    parse_str($str,$array);
    $version=$array['version'];
    if(in_array($version,$this->NameSpaceMap)){
        return $this->NameSpaceMap[$version];;
    }
    reset($this->NameSpaceMap);
    return current($this->NameSpaceMap);
}

然后路由里面定义命名空间

Route::group(['namespace'=>Route::getNameSpace()],function(){
   ...
});

控制层目录这样放
搜狗截图20160413174700.png

最后的效果(ps:懒得写控制器了,命名空间对就好)
2.png

国外laravel api 案例 https://github.com/dingo/api

标签: none

订阅本站(RSS)