API版本控制的疑惑

求教下phalapi如何做版本控制?
小弟也做了一个专门写api的框架,但是版本控制这块一直不知道怎么做比较好?
目前我采用的方法是通过继承,目录结构如下:
modules
  usercenter (模块名)
   v1 (版本目录)
   v2
   v3
   ....
 item
   v1
   v2
   v3
   ...

url:/v2/usercenter/xxx 会访问到xxx方法,v2里面可以配置继承自哪一个版本,如果配置了v1会全部继承过来,然后v2做相应的重写即可
这是小弟打算新项目这么只做,现在未重构前的项目是这样的,目录结构和上面一样,v1和v2是不同的分支,所以当v2改动一个地方后要merge到v2
但是感觉都不太好啊,想请教下各位朋友是怎么做的哇?
已邀请:

dogstar - PhalApi创始人

赞同来自: wenzhenxi

我们也有类似的版本划分,但稍微不同,是类似这样的结构:
apps
v1 (版本目录)
usercenter (模块名)
item
....
v2 (版本目录)
usercenter (模块名)
item
...
然后,提供不同的版本入口。

另外一种做法,可以通过带参数来实现,即:
http://your.api.com/?service=usercenter.index&version=1 #版本一

http://your.api.com/%3Fservice ... n%3D2 #版本二
这样,不同和版本在同一个文件里面体现。

如上两种,都是项目根据自己的喜好选择实现,框架不强制。

wenzhenxi - 喵了个咪

赞同来自: dogstar

我针对于版本控制 写了一篇小博客 希望能有帮助 
http://qa.phalapi.net/?/article/10

istrive - 很爱吃炸酱面

赞同来自:

@dogstar   不明白的是版本划分  
apps
v1 (版本目录)
usercenter (模块名)
item
....
v2 (版本目录)
usercenter (模块名)
item
...
v1 v2放在什么位置呢?实在根下  v1/demo  v2/demo  还是  在demo下 v1/api,domain  ; v2/api,domain 

要回复问题请先登录注册