在对API进行版本控制时,如何管理代码复制?

在对API进行版本控制时,如何管理代码复制?,api,rest,laravel-5,version,Api,Rest,Laravel 5,Version,我正在研究拉威尔休息,但也许这并不仅仅局限于拉威尔 通过阅读像or(以及许多其他)这样的文章和问题,您会了解到,在构建API时,对API进行版本设置是非常重要的 但在我看来,使用文件夹分离来管理不同版本的API可能会非常麻烦 /app /controllers /Api /v1 /UserController.php /v2 /UserController.php 从不久的将来来看,我可以很容易地想象在v1上有30个文件,在

我正在研究拉威尔休息,但也许这并不仅仅局限于拉威尔

通过阅读像or(以及许多其他)这样的文章和问题,您会了解到,在构建API时,对API进行版本设置是非常重要的

但在我看来,使用文件夹分离来管理不同版本的API可能会非常麻烦

 /app
  /controllers
    /Api
      /v1
        /UserController.php
      /v2
        /UserController.php

从不久的将来来看,我可以很容易地想象在v1上有30个文件,在v2上有40个文件,例如,其中大约20~25个文件可能是相同的。这不会比解决方案带来更多的麻烦吗?

如果更改足够大,它们可能需要一个新的控制器。但如果没有,则可以将版本号传递给控制器实例,并路由到同一控制器。然后用这个数字来改变行为。

你找到解决办法了吗?@JoseFrancis不太清楚。我还没有开发过多个版本的API,但我现在对Laravel很熟悉,我知道如果业务需要同一控制器的两个版本,那么拥有它也不错。然后,您可以重构并尝试将尽可能多的重复代码移动到通过Laravel IoC注入的公共服务/网关。