Un'app Web per un servizio può accedere ai propri dati tramite la propria API o direttamente?

3

Sto costruendo un servizio che consisterà in app per dispositivi mobili e desktop, che mi richiederà di costruire la mia propria web API RESTful per mantenere facilmente i dati per il servizio in sincronia. Sto anche creando un'app Web in Ruby on Rails. Inizialmente ho intenzione di ospitare tutto su un server a causa dei costi.

Sono curioso che è un design migliore:

  1. Chiedi all'app Rails di accedere al database rigorosamente tramite le chiamate all'API per consentire la futura capacità di ospitarli su server separati.
  2. Ospita sempre l'app API e Rails sullo stesso server e ciascuno di essi accede direttamente al database.

Attualmente sto pianificando che l'API sia privata, con la possibilità di aprirne una piccola parte in un secondo momento.

Dichiarazione di non responsabilità: questa sarebbe la prima volta che costruisco la mia API

    
posta PseudoPsyche 04.12.2014 - 04:20
fonte

1 risposta

6

È meglio andare con la prima opzione. Avere i tuoi 3 client - mobile, desktop e webapp - utilizzare l'API nello stesso modo è un design migliore poiché tutti usano l'API in modo coerente e qualsiasi modifica nell'API si rifletterà così com'è in tutti e tre i clienti.

In questo modo è più facile eseguire il debug e più semplice estendere nuove funzionalità. Se l'app Rails comunica direttamente con il database, dovrai modificare il codice di accesso ai dati (anziché il codice cliente ReST) nell'app Rails ogni volta che l'API cambia e l'app Rails potrebbe finire per modificare i dati in modo diverso rispetto a l'app desktop e mobile, che porta a incongruenze.

In breve: mantenere un meccanismo di accesso coerente garantirà una migliore manutenibilità.

    
risposta data 04.12.2014 - 04:45
fonte

Leggi altre domande sui tag