Servicios Rest Conversacionales

Los servicios Rest, por definición, no guardan estado en el servidor. Pero podemos hacer servicios Rest conversacionales activando en el fichero web.xml la siguiente configuración:

     <context-param>
         <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
         <param-value>
         	es.um.atica.jersey.conversation.AddConversationHeaders
         </param-value>
     </context-param>

Recordemos que el parámetro de contexto com.sun.jersey.spi.container.ContainerResponseFilters se puede indicar el valor como una lista separada por ','. Por lo que si ya existe dicha declaración solo hay que añadir el es.um.atica.jersey.conversation.AddConversationHeaders.

Para poder gestionar la conversación, podemos utilizar los parámetros o cabeceras siguientes en las solicitudes:

  • cid: parámetro que indica el identificador de la conversación (el nombre de este parámetro se define en el fichero components.xml).
  • conversationPropagation: parámetro que indica el tipo de propagación (DEFAULT, BEGIN, JOIN, NESTED, NONE, END, ENDROOT) de la conversación indicada.
  • X-Conversation-Id: cabecera que indica el identificador de la conversación. Alternativa al parámetro cid, sino queremos que vaya como parámetro.
  • X-Conversation-Propagation: cabecera que indica el tipo de propagación (DEFAULT, BEGIN, JOIN, NESTED, NONE, END, ENDROOT) aplicado a la conversación indicada. Alternativa al parámetro conversationPropagation, sino queremos que vaya como parámetro.

En las respuestas tendremos las siguientes cabeceras HTTP:

  • X-Conversation-Id: cabecera HTTP que indica el identificador de la conversación actual.
  • X-Conversation-Propagation: cabecera HTTP que indica el tipo de propagación (DEFAULT, BEGIN, JOIN, NESTED, NONE, END, ENDROOT) aplicado a la conversación indicada.
  • X-Conversation-Type: cabecera HTTP que indica el tipo de conversacion actual: temporal o largo recorrido (long-running).

De esta forma se comporta igual que si utilizasemos JSF y el navegador Web.


JUAN MIGUEL BERNAL GONZALEZ 30/06/2020 09:32

  • fdw2.0/fundeweb2.0/gt/rest/conversational.txt
  • Última modificación: 30/06/2020 09:56
  • por JUAN MIGUEL BERNAL GONZALEZ