Progettazione dell'API del servizio dati

5

Stiamo progettando un servizio dati che archivierà un gran numero di statistiche sugli stock, compresi i dati storici. Il client sarà un'applicazione web, che dovrà estrarre vari bit di dati da mostrare in diversi punti del sito.

Poiché i diversi luoghi devono mostrare diversi insiemi di statistiche, non è ragionevole per il servizio offrire semplicemente un metodo che recupera tutti i dati che abbiamo. Poiché ci sono così tanti diversi tipi di statistiche, il servizio non è a conoscenza del tipo di ognuno e semplicemente li memorizza per chiave.

In precedenza abbiamo cercato di risolvere questo problema con un numero di metodi che restituirebbero oggetti dati con diversi livelli di dettaglio, ad esempio getBasicStockInfo, getStockInfo, getFinancialStockInfo, getStockDetails. Il problema che ho riscontrato è che è diventato noioso aggiungere nuovi elementi di dati agli oggetti (è necessario cambiare il codice del server) e ognuno di essi si gonfia nel tempo man mano che i campi vengono aggiunti per alcune posizioni specifiche sul front-end. D'altra parte, non sarebbe pratico disporre di un metodo per ciascuna posizione sul front-end che restituisca i dati specifici necessari in quella posizione.

Qualcuno ha qualche idea sul modo migliore per gestire questa situazione?

Una cosa che sto considerando è che il client dovrebbe inviare un elenco di chiavi dati per i dati che desiderava e ottenere una mappa delle statistiche. Non sono sicuro che questa sia la strada da percorrere, perché il peso dei parametri diventerebbe piuttosto pesante con gli stessi che vengono passati ripetutamente da ogni posizione nell'app Web.

    
posta rwm 03.08.2012 - 17:44
fonte

1 risposta

1

La tua situazione sembra molto simile a come SalesForce.com ha progettato i loro "Core Calls" ( link ).

Hanno reso tutti gli oggetti "dati" un'estensione di un oggetto base in modo che possano facilmente crearne uno nuovo mentre riutilizzano gli stessi metodi.

    
risposta data 07.08.2012 - 19:27
fonte

Leggi altre domande sui tag