繁体   English   中英

RESTful API版本控制

[英]RESTful API Versioning

我是RESTful API的新手,目前正在开发我的第一个移动应用程序。 我对API版本以及如何管理/解决它们有疑问。

目前,我的API“版本”是我的API类所在的名为v<version_name>的目录。 在该目录中,我有另一个名为include目录中的API和REST客户端所需的资源。 因此,结构如下: example.com/api/v0.2/method_name/并在.htaccess ,我确保将遵循API版本的所有内容(硬编码在.htaccess文件中)保存在查询字符串中参数)。 我不确定这是否适用于实时应用程序,因为它也需要手动更改客户端的URL端点。 所以我的问题是:

  1. 这是API版本控制的正确方法吗?
  2. 如果是这样并且我保留了,我该如何处理过时的URL。 假设例如该应用程序处于活动状态,并且我将API更新为v0.3但安装了该应用程序的客户端将访问v0.2并返回404响应代码?
  3. 有没有更优雅的解决方案? 一定是。

编辑:可以说,在api文件夹本身之外的根include文件夹中有一些资源。

编辑2:我的API的目标是供移动应用程序使用,并且不公开使用。

虽然我认为这些问题主要是基于观点的,但我还是可以...

  1. 我认为这是一种有效的方法,而且我已经看到其他人使用它,包括Microsoft。

  2. 当有必要更新API时,您可以返回404并说明新API位于新地址。 但是,仅退出API版本通常是个坏主意; 您至少必须给客户开发人员足够的时间来切换到新的API,然后再淘汰旧的API。

  3. 更为优雅的解决方案是将API保留在一个地址,并根据需要进行更新,然后将其添加到该地址,而不是尽可能地替换。 尽可能长时间地支持过时的功能,并就某些方法何时不再有效与客户开发人员进行公开交流。

我的看法是,随便做什么吧...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM