Domanda sull'API e sulla condivisione del codice dell'applicazione Web

2

Questa è una domanda di design. Ho un'applicazione in più parti con diversi tipi di utenti. Esiste un client utente per il paziente che interagisce con un servizio web. C'è un'API che si evolve dietro il servizio web che sarà esposto agli "utenti" istituzionali e un'interfaccia per medici, ricercatori e tipi di amministratori.

L'interfaccia utente del paziente è Flex. La parte clinica / amministrativa dell'applicazione è RoR. L'API è basata su RoR / rack. Il componente del servizio Web è Java WS. Tutti i componenti accedono alla stessa origine dati.

Questi componenti vengono distribuiti come componenti separati per i propri sottodomini. Questa decisione è stata presa per consentire di ridimensionare i componenti singolarmente secondo necessità.

Inizialmente, è stata presa la decisione di suddividere il codice per l'applicazione Web RoR dall'API RoR.

Questa decisione è stata presa nell'interesse della sicurezza e mantenendo le componenti focalizzate su compiti specifici.

Nel corso del tempo, ci saranno necessariamente delle sovrapposizioni e io sto seguendo la mia decisione di mantenere il codice completamente separato. Sto notando che il codice che viene rimosso dal lato amministratore viene sollevato, modificato e utilizzato nell'API. Stando così le cose, ho pensato di unire i repository basati su Ruby.

Sono interessato a idee e intuizioni su questa situazione insieme al ragionamento dietro i tuoi pensieri.

Grazie.

    
posta opendd 17.01.2011 - 17:20
fonte

1 risposta

3

Non sono sicuro al 100% di aver capito correttamente la tua domanda, ma sembra che tu stia costruendo un'API che espone un sacco di servizi Web (assumerò RESTFul-Like mentre stai usando Java WS e RoR) che ha più client costruiti in varie tecnologie. Sembra perfettamente accettabile per me!

Penso che tu voglia mantenere l'applicazione web RoR separata dall'API RoR. Perché? Poiché l'app web RoR è non il tuo unico client . Quindi ti consigliamo di utilizzare i servizi Web per comunicare tra qualsiasi client e la tua API. Mantenere separata la tua applicazione RoR Web ti aiuterà a progettare un'API RESTFul molto più pulita, più sforzo ora, ma più premi in seguito quando gli utenti vogliono quel client iPad;) o il tuo capo dice che ci stiamo spostando su F # per l'API!

    
risposta data 17.01.2011 - 17:55
fonte