2011-11-17 5 views
5

Google recommends el uso del patrón de comando al compilar aplicaciones GWT complejas. La idea parece tener algún mérito y se han desarrollado varios marcos para ayudar. Sin embargo, la mayoría de los ejemplos que encontré están usando GWT-RPC para la comunicación cliente/servidor.¿El patrón de comando es compatible con los servicios web RESTful?

Estamos considerando desarrollar un servicio web RESTful para nuestro backend Java, y usarlo para la comunicación cliente/servidor (posiblemente usando un framework como Resty).

Pero, ¿el patrón de comando es compatible con los servicios web de Rest? ¿Cómo serían esas URL de Descanso? ¿Cómo se podría admitir el comando de procesamiento por lotes y deshacer?

Respuesta

2

Debería implementar lotes si no usa algún paquete que lo admita. En nuestra empresa, decidimos usar una interfaz REST directa: el gasto de escribir nuestro propio procesamiento por lotes en una única API era menor que el gasto de hacer que una API de RequestFactory y fuera una API pública.

¡Tendría que codificar de alguna manera sus múltiples urls de reposo y cargas útiles en una sola url y carga útil!

+1

Consulte http://code.google.com/apis/gdata/docs/batch.html como un ejemplo. –

4

El patrón de comando es/era un patrón recomendado y supone un gran paso adelante para construir una interfaz RPC utilizando RemoteService y RemoteServiceServlet, que es prácticamente todo lo que estaba disponible en el momento de la presentación de Google I/O a la que hace referencia .

El enfoque GWT-RPC es muy bueno y funciona bien y proporciona el mecanismo de procesamiento por lotes y deshacer. Debo decir que nunca he implementado una sola función de deshacer() en ninguno de mis controladores, aunque utilizo el procesamiento por lotes.

Un enfoque más nuevo sería utilizar RequestFactory y asignar su código a su servicio. Esto admite lotes pero no deshacer. No es una gran tarea de implementación, pero tiene sus peculiaridades. Un buen ejemplo se puede encontrar here.

Si necesita una interfaz REST, usar esta herramienta en su GWT para guardar el desarrollo de dos interfaces parece una buena idea. Pero como @Riley Lark dice que tendrás que escribir tus propios lotes (y deshacer() si es necesario).

Mi sensación es que tanto el procesamiento por lotes como el deshacer realmente no encajan con el enfoque REST, pero esa es solo mi opinión. Hay más información here de una pregunta similar.

Perosnally Probablemente usaría la infraestructura de GWT y RequestFactory para hacer comunicaciones de cliente a servidor y aprovechar el protocolo de procesamiento por lotes y el protocolo optomised y la protección de scripts entre sitios y escribir una interfaz REST por separado para lo que necesite usar.

Cuestiones relacionadas