我想建立一个API版本控制,类似于Stripe的做法,但我不太确定如何让express做我需要的事情。https://stripe.com/docs/api#versioning
我要找的是,正确的路由应该是这样的:
/api/v1/call
问题是,我希望他们能像Stripe一样传递版本修订号,因此,如果他们发送了一个标题,如“API-Version: 2015-08-15”,它将映射到该特定版本的主版本。所以,v1但版本更新在2015-08-15。
本质上,如果有一个对API调用的更新不向后兼容,我将为该特定调用滚动一个新版本。Express将聪明地知道,如果没有传递版本,使用最新版本。如果传递了版本,对于每个调用,使用最新版本直到版本日期。
我认为目录结构应该是这样的:
/router/ /router/v1 /router/v1/call /router/v1/anotherCall
/api/v1/call
问题是,我希望他们能像Stripe一样传递版本修订号,因此,如果他们发送了一个标题,如“API-Version: 2015-08-15”,它将映射到该特定版本的主版本。所以,v1但版本更新在2015-08-15。
本质上,如果有一个对API调用的更新不向后兼容,我将为该特定调用滚动一个新版本。Express将聪明地知道,如果没有传递版本,使用最新版本。如果传递了版本,对于每个调用,使用最新版本直到版本日期。
我认为目录结构应该是这样的:
/router/ /router/v1 /router/v1/call /router/v1/anotherCall
也许在调用目录中,有一个索引检查头版本并使用正确的文件。
例如:
- /router/v1/call/index.js
- /router/v1/call/20150810.js -- 第一个版本
- /router/v1/call/20150815.js -- 不向后兼容的更新版本
你有什么想法?