Gestione di più versioni di api di resto all'interno del client Java Android

1

Architettura reale

Ho un'app in cui un modello è associato a ogni attività. Il modello richiede un repository per informazioni che possono provenire dal server o dal db locale in base a molti fattori. Quando richiede al server informazioni, crea una petizione incapsulata sotto un oggetto che va a un webService Manager che elabora la richiesta. Il webService manager restituisce ed errorEvent se qualcosa va storto e gestisce anche gli errori. dove ci sono informazioni restituisce un genericEvent che viene fornito con tutte le informazioni recuperate dal server.

problema

Il server passerà alla prossima versione di api di riposo, con alcuni miglioramenti e funzionalità. Il server è un motore configurabile dall'app, poiché ogni client ha la propria configurazione del server. Alcuni client non aggiorneranno i loro server alla nuova versione e utilizzeranno la versione dal playstore. Quindi devo essere in grado di gestire diverse versioni di restApi dall'app, poiché non ci saranno endpoint sulle versioni precedenti del server.

La mia alternativa per le soluzioni

Ho cambiato l'interfaccia che è ciascun repository, in una classe astratta che estende questa interfaccia. per creare chiamate comuni, che possono essere sovrascritte sotto ogni versione. Quindi ogni nuova versione erediterà dalla precedente. con le modifiche necessarie In questo modo sarò in grado di gestire i cambiamenti.

NOTA: si afferma che l'endpoint che recupera la configurazione e la versione del server non cambierà nel tempo. O almeno in pochi anni.

Qualche idea al riguardo?

    
posta Pedro Teran 02.02.2016 - 20:41
fonte

0 risposte

Leggi altre domande sui tag