Mi sto integrando con una serie di servizi REST esposti dal nostro partner. L'unità di integrazione è a livello di progetto, il che significa che per ogni progetto creato sul lato del recinto dei nostri partner esporrà un insieme unico di servizi REST.
Per essere più chiari, supponiamo che ci siano due progetti: project1 e project2. I servizi REST disponibili per accedere ai dati del progetto sarebbero quindi:
/ Project1 / ricerca / getstuff? Ecc ...
/ Project1 / analisi / getstuff? Ecc ...
/ project1 / cluster / getstuff? etc ...
/ project2 / ricerca / getstuff? Ecc ...
/ Progetto2 / analisi / getstuff? Ecc ...
/ project2 / cluster / getstuff? etc ...
Il mio compito è quello di avvolgere questi servizi in una classe C # che verrà utilizzata dal nostro sviluppatore di app.
Voglio renderlo semplice per lo sviluppatore dell'app e sto pensando di fornire qualcosa come la seguente classe.
class ProjectClient { SearchClient _searchclient; AnalysisClient _analysisclient; ClusterClient _clusterclient; string Project {get; set;} ProjectClient(string _project) { Project = _project; } }
SearchClient, AnalysisClient e ClusterClient sono le mie classi per supportare i rispettivi servizi mostrati sopra.
Il problema con questo approccio è che ProjectClient dovrà fornire metodi pubblici per ciascuna delle API esposte da SearchClient, ecc ...
public void SearchGetStuff() { _searchclient.getStuff(); }
Qualche suggerimento su come posso architettarlo meglio?