2010-01-17 15 views
1

J'ai un projet qui nécessite de m'intégrer avec 2 API REST, puis d'agréger les résultats. Je construis ce projet CakePHPCakePHP Agrégation d'API externe - Une question de conception de modèle, de source de données et de comportement - Pratique

Mon approche de base est:

Produit (modèle) Products (contrôleur) API1 (source de données) API2 (source de données) agrégation (comportement)

La base Le flux est: 1. L'utilisateur saisit un nom de produit dans un formulaire de recherche/produits/recherche ie 'DVD' 2. search() action sur les appels du contrôleur model-> find() en passant le terme de recherche 3. le terme de recherche est alors passé à chaque source de données et les API retournent les résultats 4. Comportement nettoie, les agrégats et réordonne les résultats en un seul jeu de données 5. Le modèle passe les données au contrôleur, qui passe ensuite les données sur la vue 6. Les résultats paginés affichés sur la page de résultats

C'est là Je suis coincé ...

Un seul modèle peut-il utiliser 2 sources de données, puis utiliser un comportement pour effectuer des tâches d'agrégation.

Je n'ai créé qu'un modèle utilisant une seule source de données personnalisée.

Des idées sur la meilleure façon de faire cela seraient vraiment appréciées. La portée du projet est que le nombre d'API intégrées pourrait atteindre 10+ en fonction du succès de ce projet prototype.

Merci, Paul

Répondre

1

Vous pouvez faire quelque chose comme ça dans votre modèle

App::import('ConnectionManager'); 

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

$data1 = $abc->find('all'); 
$data1 = $xyz->find('all');