Ottieni i dati in un singolo indice
La soluzione più semplice, senza problemi, senza problemi.
Ma poi di nuovo, perché qualsiasi Enterprise essere semplice?
Fornisci due set di risultati
Il meglio che puoi fare è fornire la prima pagina della risposta di ciascuna fonte. Se una delle due fonti si asciuga, è sufficiente restituire il set come vuoto. Non essere tentato di fornire più risultati dall'altra fonte, perché se la fonte secca si riempie improvvisamente, avrai un utente confuso sul motivo per cui alcuni risultati vengono ripetuti.
Unisci al client
In alternativa, se hai qualche misura di controllo sul client, puoi elencare le pagine dall'api da entrambe le fonti e utilizzare la metrica di qualità per ordinare i dati restituiti in pagine per l'utente. Dovrai assicurarti di avere l'elemento successivo (o la fine dei dati) da entrambe le fonti per assicurare una buona unione per quella pagina. Ciò imporrà un po 'di peso al computer degli utenti, quindi assicurati che il loro sistema sia all'altezza del carico previsto.
Hack disordinato - Qui per completezza evita se possibile.
C'è un brutto attacco che potresti fare. Fornirebbe l'illusione quasi di un'origine dati unificata. È comunque penosamente inefficiente e rompe l'incapsulamento di base . Aggiungi un parametro per origine dati per agire come offset dell'elemento. Per produrre una Pagina di N elementi, eseguire una query su ogni origine dati per gli elementi + N di offset. Unisci questi nell'API e restituisci i primi N elementi, insieme agli offset aggiornati per la pagina successiva.
Scelte
Combatti per un singolo indice e usa i due set di risultati come alternativa. Nascondere seriamente il fatto che potresti unire i dati al client o all'API. Non vorrai doverli annullare più tardi, e il team aziendale si aspetterà che tu possa farlo ora per ogni fonte di dati, e lamentarti amaramente quando non è più reattivo, e quali sono i costi nell'orario di lavoro da risolvere esso. È semplicemente meglio negarli ora e portare a termine il lavoro per supportare questo aspetto.