2013-06-12 18 views
5

Sono molto incuriosito dal derby e ho passato la notte scorsa a leggere la documentazione. I miei attuali pensieri di architettura sono molto orientati alla creazione di un'API RESTful che viene utilizzata dall'applicazione rich client corrispondente o da chiunque altro abbia accesso all'API.Derby con un'API RESTful

Derby mi impressiona non solo per la sua attenzione alla velocità, ma perché funziona molto come il web dovrebbe (con gli URL che corrispondono alle pagine). Tuttavia, con la mossa in questi giorni per avere un'applicazione mobile che si adatta a un prodotto, sembra che sia necessaria una API se si vuole sviluppare sia per il mobile sia per la sfera del browser.

La mia domanda è duplice.

  1. Potrebbe Derby essere utilizzato per interfacciarsi con un API, scrivendo essenzialmente un adattatore API e scambiare che con il mongoadapter. Non ho guardato l'adattatore ma i documenti insinuano che scrivere un adattatore non è troppo difficile. In alternativa potrebbe derby produrre una risposta JSON alla chiamata API se l'intestazione accetta chiede JSON. In questo modo potrebbe svolgere il ruolo di API e servire la webapp.

  2. Il derby può essere visto come un'applicazione nel suo complesso e non viene utilizzato affatto per altre app (ad esempio mobili). Cioè il fattore comune tra un browser e un'app mobile sarà il database, non l'API. Il lato negativo di non avere l'API come un fattore comune sarebbe che le funzionalità potrebbero non essere coerenti tra le app (non come nella quantità di funzionalità, ma una potrebbe essere bacata l'altra no).

Mi piacerebbe molto usare derby nel nostro prossimo progetto, ma hanno bisogno di una certa chiarezza se sia lo strumento per il lavoro. (Tra l'altro il progetto sarà una grande applicazione web, ma ha bisogno di avere l'integrazione mobile. Avere un'API potrebbe anche essere una grande idea, ma io non sono ancora sicuro della sua utilità)

+0

+1 Mi piacerebbe vedere questa risposta. Sono più interessato al numero 1 in cui vorrei integrare il derby con un'API esistente. – Craig

+0

+1 anche qui - abbastanza interessato. –

risposta

1
  1. penso che si può scrivere adattatore per derby per comunicare con la tua apip-app (dove i dati sono effettivamente memorizzati), ma questo adattatore avrà metodi predefiniti e non rifletterà la tua API. Quindi la logica di business probabilmente verrà duplicata (derby app e api app) e non otterrai molto da questa soluzione.

  2. Si consiglia di utilizzare derby as api-app. Dalla versione 0.6 (che arriverà presto) è possibile utilizzare l'applicazione derby lato client senza lato server, il che significa che è possibile utilizzarlo su PhoneGap ad esempio. Anche il derby ha una sincronizzazione client integrata con risoluzione dei conflitti basata su share.js. Puoi usarlo per le applicazioni web e phoneeg "della scatola", ma per le app native per dispositivi mobili dovresti scrivere i client share.js per usarlo. Inoltre, è disponibile un'app di ripristino integrata in share.js o puoi implementare facilmente la tua API in base a percorsi espressi. Quindi derby è perfetto per api, web, app phonegap e buono per le app mobili.