2010-03-28 10 views
5

Prefazione Sono nuovo nello sviluppo web. Sto cercando di creare un nucleo di servizi web RESTful attorno a una libreria di documenti di valore (abilità CRUD iniziali). Nel fare ciò sto teoricamente creando un back-end perfettamente riutilizzabile e scalabile da utilizzare in futuro per applicazioni non previste.Best practice per la creazione di servizi Web

La mia domanda è incentrata sulle migliori pratiche per farlo. Il mio requisito iniziale mi ha anche creato un front end unico. Potrei rendere il front-end e il back-end progetti completamente separati per migliorare la riutilizzabilità. Aumenterebbe i costi generali.

Guardare utilizzando GWT, Restlet e lo stack di tecnologia Java EE se questo influisce sull'impostazione.

risposta

2

Il più importante è progettare un'API Java pulita, indipendente da REST, RMI o da qualsiasi protocollo che si desidera utilizzare. Da un'API Java pulita, puoi supportare qualsiasi metodo di accesso.

A meno che non si disponga di un caso d'uso per questi altri metodi di accesso, non crearli ora. Puoi costruirlo quando ne hai bisogno.

L'interfaccia più semplice da aggiungere inizialmente è un'interfaccia basata sul Web in cui l'app Web viene eseguita nella stessa JVM dell'API principale. Lo farei se questo funziona per il tuo caso d'uso. Creare un'applicazione console separata che acceda all'API principale tramite un protocollo REST (o qualsiasi altra cosa) è molto più lavoro.

+0

stai parlando del livello Java che interagisce effettivamente con il database corretto? – Holograham

+0

corretto.Interagisce con il database ed esegue la logica aziendale, la logica di convalida, ecc. –

+0

Questa risposta è buona. L'unica cosa che vorrei aggiungere è considerare i problemi di implementazione/implementazione: sei contento di avere il tuo livello di visualizzazione in esecuzione nella stessa JVM del tuo business/livello dati? Oppure, ad esempio, il tuo livello dati deve stare dietro a un firewall? Se questi non sono importanti per te, metti la tua attenzione sulla progettazione di una buona API e lascia le cose esotiche per dopo. –

1

Martin Fowler ha scritto un bellissimo articolo sulle basi del REST poco tempo fa: Richardson Maturity Model. Ho trovato molto utile capire i principi di REST.

+0

grazie leggerà ... anche se questo significa che ho completamente distrutto la domanda? – Holograham

+0

ah ok: P è stato sicuramente un articolo perspicace. – Holograham

0

Si consiglia di considerare l'utilizzo di GWT-RPC anziché di REST se si sa che si utilizzerà GWT per il frontend. Altre discussioni here.

Tuttavia, se si ritiene che si desideri esporre i dati tramite un'API REST o utilizzare una tecnologia diversa sul frontend, REST può essere una scelta migliore.

Anche il progetto gwt-rest può essere utile.

+0

grazie, ho considerato entrambi e REST è stata la decisione definitiva in base ai requisiti di riutilizzabilità. – Holograham

0

Un collega e io abbiamo scritto un sistema GWT utilizzando progetti separati per front e back end. È stato utile tenere le cose abbastanza chiare su dove il codice è in esecuzione. Ma non sono sicuro che mi preoccuperei di separare le cose in un sistema futuro.

Inoltre, dato che sei nuovo nello sviluppo web, non penso che dovresti aspettarti di creare un back-end perfettamente riutilizzabile. Imparerai molte cose mentre vai. Penso che i programmatori agili raccomanderebbero un approccio iterativo di (a) ottenere un piccolo aspetto funzionante, e quindi (b) rifattorizzarlo per renderlo bello.

1

Se si desidera utilizzare i servizi di back-end basati su REST, è necessario utilizzare il progetto RestyGWT che consente di utilizzare uno stile di programmazione GWT-RPC per accedere ai servizi basati riposanti tuo JSON.

La cosa piacevole dell'utilizzo dei servizi JSON basati su REST rispetto ai servizi GWT-RPC tradizionali è che questi servizi possono essere utilizzati più facilmente da altri client o persino in mashup.

Problemi correlati