====== 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:
com.sun.jersey.spi.container.ContainerResponseFilters
es.um.atica.jersey.conversation.AddConversationHeaders
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.
----
--- //[[juanmiguel.bernal@ticarum.es|JUAN MIGUEL BERNAL GONZALEZ]] 30/06/2020 09:32//