and*_*ndy 6 architecture versioning api asp.net-web-api
当我听到关于发布版本1 API的讨论时,它始终伴随着这个基本的想法:
我们还不能发布我们的API,因为我们必须在第一时间做到正确.
这是Vic Gundotra最近的一个例子,但是在API发布前一天,还有很多其他的包括Stackoverflow本身.
我不明白的是,为什么第一个版本必须如此"正确"?使用API,您可以实现版本控制和良好的文档,如果您做得好,哪个并不难,为什么对版本1 API如此珍贵?
从版本到版本,因为它是版本化的,所以API可以在没有任何重大更改的情况下发生显着变化,因为仍然支持旧版本.我想知道为什么发布API的重大问题?
从版本到版本,因为它是版本化的,所以API可以在没有任何重大更改的情况下发生显着变化,因为仍然支持旧版本.
这意味着两件事:
正确设计API是一件棘手的事情.是的,在实用主义和完美主义之间取得了平衡 - 但它并不像你想要的那样简单.
我还要指出,(例如)一个开源项目与10个用户快速推出然后更改它,以及像谷歌或微软这样的公司为全球开发者社区这样做之间存在相当大的维护差异.大公司的内部API(您无法轻松修复整个代码库)与小公司的内部API之间存在巨大差异,您可以随时随地改变世界.
对于对此做出如此重大的事情感到惊讶,我有一些同情 - 但这表明你没有经历过改变API可能意味着什么的痛苦.你可能同样感到惊讶 - 或者甚至更多 - 只要在一个错误的决定逃逸到世界之后做出根本改变是多么困难.
(免责声明:我在谷歌工作,但不在G +区域工作.这个答案的意见是我自己的,不代表谷歌.)