2011-08-13 7 views
10

Estoy creando un producto del lado del cliente con REST. Toda la interacción del usuario se realizará con un navegador (las cosas de configuración estarán en un servidor que se ejecuta en el host local). Quiero que todo sea compatible con REST, aunque la aplicación se ejecutará en el equipo de un cliente en el localhost y nunca será accesible desde el exterior.RESTO: cómo decirle al servidor que realice un proceso en segundo plano

Los comandos son bastante simples:

  • actualización
  • reinicio
  • sincronización

es lo que he llegado con Aquí:

  • POST a/a parámetro 'acción' (JSON) que detalla detalles
  • poner un nuevo recurso
    • posteriores peticiones GET volverán el estado
    • cuando el comando se ha completado, se elimina el recurso

¿Cuál sería la forma más REST para implementar ¿esta?

Nota:

no estoy pidiendo scrutinization de mi arquitectura de software. Tengo motivos para elegir una interfaz REST en lugar de un socket de dominio Unix, una interfaz CLI o incluso una interfaz GUI normal. La justificación complicaría demasiado la pregunta y la haría demasiado localizada.

He tenido la misma necesidad en un par de proyectos diferentes (solo clientes y servidores) y estoy buscando información de la comunidad sobre las mejores prácticas.

+0

¿Qué quiere decir con "aplicación solo para el cliente". ¿Te refieres a una sola página [RIA] (http://en.wikipedia.org/wiki/Rich_Internet_application)? –

+0

Lo que quiero decir es que la aplicación se ejecutará en la máquina de un cliente en localhost solamente. Solo el usuario podría acceder a él. Esto nunca se configurará en un puerto abierto. Editando la pregunta para reflejar eso. – tjameson

+0

Esto debería ser una aplicación de escritorio luego – Mrchief

Respuesta

8

Yo POSTARÍA a un/recurso de proceso con los parámetros apropiados necesarios para iniciar el proceso, luego me gustaría que devuelva un encabezado de Ubicación a ese recurso que en realidad representa el estado del proceso (/ proceso/123). A continuación, puede usar GET en ese proceso para obtener la información más reciente al respecto.

No eliminaría automáticamente el proceso, porque si lo hace, el cliente no sabrá si el proceso finalizó correctamente o no, simplemente que terminó (bueno, dejó de funcionar).

Teniendo en cuenta que, el cliente puede ELIMINAR el recurso cuando está hecho, o puede limpiarlo más tarde después de un tiempo razonable donde es probable que el que estaba interesado en él ya no esté.

+0

Esto suena bastante razonable. Esperaré un poco antes de aceptar, pero esto definitivamente es útil. – tjameson

Cuestiones relacionadas