版本有很多风格
原来用symfony的风格是 /v2/user/login
discuz直接用数字 是 /2/user/login
他们有共同特点都url变了,并且要新建个目录v2,或2,然后在里面写userController

后来网上看了篇文章,得到了启发。让url不变,让版本在headert里传过来。
header头设置
version:2

服务端
$version = $_SERVER[‘HTTP_VERSION’];

配置

$v = [
    "1.0" =>[],
    // news/lists?v=1.0进来,发现1.0空,取默认的

    "1.1" =>[
        'news/list/2',
        'news/detail/2'
    ],
    // news/lists?v=1.1进来,发现有1.1,并且key有包含news/list的,取 news/lists/2

    "1.2" =>[
        'news/lists/3'
    ],
    // news/lists?v=1.3进来,发现1.3为空,取自己小弟里最大的1个,简称"大弟",在1.0,1.1,1.2里比1.3小的最大数就是1.2了,那就取 news/lists/3
    //同理 news/list?v=1.4 也取1.2的配置

    "1.5" =>[
        'news/lists/4'
    ]
    // news/detail/?v=1.8进来发现是空,取大弟,会取到 1.5,但1.5里没有 new/detail定义,再取更小的1.2,发现仍然没有,继续递归找下去。找到了1.1,发现有,就取这个
    // 如果1.1里还没有,再取1.0,然后1.0也是空,那么就取默认的了。

];

客户端可用任意方式将版本传过来。

Comments are closed.

Post Navigation