【问题标题】:How to manage code duplication when versioning API?版本控制 API 时如何管理代码重复?
【发布时间】:2016-08-13 21:29:01
【问题描述】:

我正在研究 Laravel REST,但也许这不仅限于 Laravel。

通读诸如Laravel RESTful API versioning DesignHow to organize different versioned REST API controllers in Laravel 4?(以及许多其他问题)之类的文章和问题,您会了解到在构建API 时对API 进行版本控制非常重要。

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

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

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

【问题讨论】:

  • 您找到解决方案了吗?
  • @JoseFrancis 不完全是。我没有开发过多个版本的 API,但我现在对 Laravel 已经足够熟悉了,我知道如果业务需要同一个控制器的 2 个版本,那么拥有它也不错。然后,您可以重构并尝试将尽可能多的重复代码移至通过 Laravel IoC 注入的公共服务/网关。

标签: api rest laravel-5 version


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-25
    • 2021-10-05
    • 2013-12-10
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    相关资源
    最近更新 更多