laravel

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

利用头信息中的 HTTP_ACCEPT 控制版本号,再通过版本号来控制命名空间。HTTP_ACCEPT 添加版本号 version=1.0 在项目文件的\laravel\vendor\laravel\framework\src\Illuminate\Routing\Router.php 添加方法 //定义版本号与命名空间 protected $NameSpa…

0 阅读

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

version=1.0

在项目文件的\laravel\vendor\laravel\framework\src\Illuminate\Routing\Router.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

正在加载评论…