这是我的要求:1.版本REST端点2.避免代码重复3.已弃用的APIS
以下是REST端点的示例:GET:https:///www.thisatests.com/v1/users
获取:https:///www.thisatests.com/v2/users
v1和v2的响应结构完全不同。版本号是路径变量。
有关实施方法的问题:
理想情况下,我们不想启动两个不同的微服务来执行此任务,也不想拥有不同的代码库来执行此操作。
我们正在使用SpringBoot进行REST API的开发。我知道我们可以在控制器的类级别或功能级别添加注释。
我想知道实现版本控制的最佳方法是什么,以便“使用相同的代码库(没有重复的代码)和一个微服务”如何做到这一点?
注意:当我说相同的代码库且重复的意思是:例如。如果我使用相同的方法控制器来获取基于v1和v2响应格式更改的用户详细信息。因此,我必须避免输入“ if v1或if v2”之类的内容。
如果我用代码编写2个不同的功能控制器,那么如何处理已弃用的api?如何清理代码?在任何时候,我们只希望支持2个版本的api。在上述限制下,什么是最佳方法?
谢谢。
根据我的经验,您可以将这两个端点视为由同一微服务提供的单独服务(功能)。这意味着您应该有一个代码库来支持这两种功能。您可以在可能的部分重用您的代码,但这并不总是可能的或可行的。
关于如何处理已弃用的api:这取决于您的客户端。如果您可以直接与客户交流,则应将旧服务的终止通知客户,并提供迁移到新服务端点的必要指南。
您还可以检查您的日志,以查看是否有特定的客户端在日落时间临近时仍在使用您的代码。如果需要,您可以直接与他们交谈。