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