【发布时间】:2018-06-07 14:41:11
【问题描述】:
我打算用 Laravel 框架创建一个 API。如果我继续开发,可能会有多个版本的 API,例如:v1、v2、v3 等等。
我不是只有一个 Laravel 框架副本并通过为每个版本创建不同的目录来对其中的 API 进行版本控制,而是考虑为每个版本的 API 创建一个完全独立的 Laravel 框架副本。
例如,假设这是 API 的 URL:website.com/api,我正在考虑在 api 目录中创建一个名为 v1 的目录,并将 Laravel 的完整副本放入其中。稍后当我需要创建新版本的 API 时,我会在 v1 旁边创建另一个名为 v2 的新目录,并在其中放置一个新的完整且单独的 Laravel 副本,依此类推。
这样,当我想访问 API 的版本 1 时,我将访问这个 URL:website.com/api/v1,当我想访问版本 2 时,我将访问 website.com/api/v2。
我的问题:这是个坏主意吗?这种方法有什么缺点?
编辑:
我为什么想到这种方法?
因为我想到了以下几点:
- 如果有一天我想用 Laravel 以外的 PHP 框架创建一个新版本的 API。
- 如果有一天我想用 PHP 以外的编程语言创建新版本的 API。
- 如果有一天我想升级到较新版本的 Laravel,并且该版本对最初创建 API 的版本有重大更改,该怎么办。
【问题讨论】:
-
我找不到一个优势而不是劣势,你为什么要这个?
-
你不需要它(首字母缩略词:YAGNI)是极限编程 (XP) 的一项原则,它规定程序员在认为有必要之前不应添加功能。 en.wikipedia.org/wiki/You_aren%27t_gonna_need_it
标签: php laravel api api-versioning