È consigliabile creare una singola API per accedere al database? [chiuso]

0

Hai un'organizzazione che il suo lavoro principale consiste nell'acquisire varie fonti di dati, convalidarle e integrarle in set di dati finanziari per lo più esistenti e poi avvalendoli di tali dati a diversi tipi di clienti attraverso varie applicazioni web, mobili, USSD e API. ha sviluppato internamente e altri che sono stati esternalizzati.

Alcune delle sfide che stanno affrontando e continueranno ad avere è l'applicazione dell'autenticazione dell'applicazione per accedere al database, gestire le sessioni DB e, soprattutto, garantire che i vari sviluppatori di diversi paesi e organizzazioni restituiscano lo stesso risultato delle altre applicazioni.

Vogliamo migliorare la sicurezza crittografando il DB -Postgresql DB- e vogliamo essere in grado di gestirne l'accesso. C'è anche un maggior lavoro di sviluppo per nuove applicazioni, ma tutte le nuove applicazioni saranno ora completamente esternalizzate.

Poiché i dati sono il patrimonio principale di questa azienda, è consigliabile che l'azienda fornisca una API che tutte le altre applicazioni chiamano quando desiderano dati dalla società? Sarà questo un collo di bottiglia da gestire e mantenere o è in realtà il modo migliore per andare in un simile ambiente? Con un tale ambiente intendo il lavoro principale è l'aggregazione dei dati, la protezione dei dati e l'accesso ai partner commerciali che stanno creando app Web, applicazioni USSD, applicazioni SMS, ecc. Effettuando centinaia di migliaia di chiamate al giorno.

    
posta lukik 17.12.2015 - 16:56
fonte

1 risposta

2

Se fai cose molto pesanti come il tuo livello di autenticazione e la crittografia , è una buona idea avere un'API canonica e ben supportata. È più semplice mantenere un'API che diversi.

Vorrei provare ad avere una singola API di basso livello, qualcosa come un livello che può passare attraverso l'SQL dei client mentre gestiscono in modo trasparente l'autenticazione e la crittografia. Le interfacce di livello superiore possono essere costruite su di essa, dal tuo team e da altri team allo stesso modo.

Con un po 'di fortuna e considerazione, l'interfaccia di basso livello può essere costruita in modo tale che gli strumenti standard possano accedervi così com'è. Per esempio. fornire un'interfaccia DBI JDBC e / o Python sopra il livello personalizzato semplificherebbe notevolmente lo sviluppo ulteriore.

    
risposta data 17.12.2015 - 17:07
fonte

Leggi altre domande sui tag