1

我有一个项目需要我与 2 个 REST API 集成,然后汇总结果。我正在用 CakePHP 构建这个项目

我的基本做法是:

产品(模型) 产品(控制器) API1(数据源) API2(数据源) 聚合(行为)

基本流程是: 1. 用户在搜索表单 /products/search 中输入产品名称,即“DVD” 2. 控制器上的 search() 操作调用 model->find() 传递搜索词 3. 然后将搜索词传递给每个数据源和 API 返回结果 4. 行为清理、聚合和重新排序结果到单个数据集 5. 模型将数据传递回控制器,然后将数据传递到视图 6. 显示在搜索结果页面上的分页结果

这就是我卡住的地方...

单个模型是否可以使用 2 个数据源,然后使用一个行为来执行聚合任务。

我只创建了一个使用单个自定义数据源的模型。

任何有关执行此操作的最佳方法的想法都将不胜感激。项目范围是集成的 API 数量可以增加到 10+,这取决于这个原型项目的成功。

谢谢,保罗

4

1 回答 1

1

你可以在你的模型中做这样的事情

App::import('ConnectionManager');

$abc = ConnectionManager::getDataSource('abc');
$xyz = ConnectionManager::getDataSource('xyz');

$data1 = $abc->find('all');
$data1 = $xyz->find('all');
于 2010-03-01T15:17:20.180 回答