2010-03-28 14 views
5

Prefacio Soy nuevo en el desarrollo web. Estoy buscando crear un conjunto básico de servicios web RESTful en torno a una valiosa biblioteca de documentos (habilidades CRUD iniciales). Al hacerlo, teóricamente estoy creando un back-end perfectamente reutilizable y escalable para ser utilizado por aplicaciones no anticipadas en el futuro.Mejores prácticas para crear servicios web

Mi pregunta se centra en las mejores prácticas para hacer esto. Mi requisito inicial también me permite crear una interfaz única. ¿Haría que el front-end y el back-end finalicen proyectos completamente separados para mejorar la reutilización? Aumentaría la sobrecarga.

Considerar el uso de GWT, Restlet y la pila de tecnología Java EE si esto influye en la configuración.

Respuesta

2

Lo más importante es diseñar una API Java limpia, independiente de REST, RMI o cualquier protocolo que desee utilizar. Desde una API Java limpia, puede admitir cualquier método de acceso.

A menos que tenga un caso de uso para estos otros métodos de acceso, no los cree ahora. Puedes construirlo cuando lo necesites.

La interfaz más fácil de agregar inicialmente es una interfaz basada en web donde su aplicación web se ejecuta en la misma JVM que su API principal. Haría esto si esto funciona para tu caso de uso. Construir una aplicación de consola separada que acceda a su API principal a través de un protocolo REST (o lo que sea) es mucho más trabajo ...

+0

¿está hablando de la capa de Java que realmente interactúa con la base de datos correcta? – Holograham

+0

Correcto.Interactúa con la base de datos y realiza su lógica comercial, lógica de validación, etc. –

+0

Esta respuesta es buena. Lo único que agregaría es considerar sus inquietudes sobre implementación/implementación: ¿está contento con que su nivel de vista se ejecute en la misma JVM que su nivel de negocio/datos? O, por ejemplo, ¿su nivel de datos necesita sentarse detrás de un firewall? Si estos no son importantes para usted, concéntrese en diseñar una buena API y deje las cosas exóticas para más adelante. –

1

Martin Fowler escribió un artículo muy bueno sobre los fundamentos de REST hace poco tiempo: Richardson Maturity Model. Me pareció muy útil comprender los principios de REST.

+0

gracias se leerán ... ¿aunque esto significa que fallé por completo la pregunta? – Holograham

+0

ah ok: P definitivamente fue un artículo revelador. – Holograham

0

Es posible que desee considerar el uso de GWT-RPC en lugar de REST si sabe que va a utilizar GWT para la interfaz. Más discusión here.

Sin embargo, si cree que es posible que desee exponer sus datos a través de una API REST, o utilizar una tecnología diferente en la interfaz, REST puede ser una mejor opción.

El proyecto gwt-rest también puede ser útil.

+0

gracias, he considerado ambos y REST fue la decisión final basada en los requisitos de reutilización. – Holograham

0

Un colega y yo hemos escrito un sistema GWT usando proyectos separados para el frente y la parte posterior. Ha sido útil dejar bien en claro dónde se está ejecutando el código. Pero no estoy seguro de que me moleste en separar las cosas en un sistema futuro.

Además, dado que es nuevo en el desarrollo web, no creo que deba esperar hacer un backend perfectamente reutilizable. Aprenderás muchas cosas sobre la marcha. Creo que los codificadores ágiles recomendarían un enfoque iterativo de (a) trabajar en un aspecto pequeño y luego (b) refaccionarlo para que sea hermoso.

1

Si desea utilizar servicios backend basados ​​en REST, debe utilizar el proyecto RestyGWT que le permite utilizar un estilo de programación GWT-RPC para acceder a sus servicios basados ​​en JSON.

Lo bueno de usar servicios JSON basados ​​en REST sobre los servicios tradicionales GWT-RPC es que esos servicios pueden ser utilizados por otros clientes o incluso en mashups más fácilmente.

Cuestiones relacionadas