【发布时间】:2011-08-16 14:52:06
【问题描述】:
我已经使用 CodeIgniter 构建了一个 Web API,并且即将推出更新版本。因此,假设您可以对其进行以下调用:
mysite.com/api/v1.0/get_customers
mysite.com/api/v2.0/get_customers
(假设我正在使用路由来获取正确的控制器版本)。
我有一个这样的 CI 库结构:
controllers/
+ 1.0/
+ Api.php
+ 2.0/
+ Api.php
libraries/
+ 1.0/
+ Customer.php
+ 2.0/
+ Customer.php
models/
+ 1.0/
+ Customer_model.php
+ 2.0/
+ Customer_model.php
现在假设有一个 v1.0 调用进来,我加载了 1.0 控制器,它加载了 1.0 库和模型。之后,一个 v2.0 调用进来,我加载了所有 2.0 版本...
CI 是否会识别到 1.0 类的路径与 2.0 类不同并重新加载它们(而不是认为它们已经加载,因为它们共享相同的类名,而实际上它是 1.0 版本)?
人们如何处理这个问题?我是否需要使用不同的类名,像这样:
class Customer_1_0
class Customer_2_0
class Customer_model_1_0
class Customer_model_2_0
我希望不是...有没有更清洁的方法来做到这一点?我觉得我在这里缺少一些基本的东西。
谢谢, 史蒂夫
【问题讨论】:
-
我不明白。您正在谈论 2 个单独的 HTTP 请求。那么为什么 Codeigniter 会“认为他们已经加载了”?
-
API1 目前已经存在,还是正在考虑为未来设计结构?
标签: php api codeigniter versioning