Respuesta de Webservice
El op Webservice Response permite a la regla controlar los parámetros de respuesta HTTP en reglas de webservice.
La respuesta final se construye a partir de variables stash. Este op convertirá el YAML de respuesta de entrada en parámetros stash que llamarán a los métodos de respuesta correspondientes.
Este op no tiene efecto en tipos de reglas diferentes de reglas de Webservice.
Lea más sobre Reglas de Webservice para comprender mejor el contexto detrás de este op.
Configuración YAML de Respuesta¶
El único parámetro de configuración para este op
es un campo YAML llamado Response.
La respuesta YAML es una estructura de datos de mapa/diccionario (también llamado hash). Las siguientes claves son válidas:
body:data:headers:cookies:location:status:
Usando variables en la respuesta¶
Las variables stash se pueden usar en cualquier lugar del YAML:
data: my_key: ${some_stash_variable} your_location: ${ws_request.location}
body: (mutuamente excluyente con 'data:')¶
El body: es una cadena que se enviará de vuelta al solicitante
del webservice tal cual. Esta es la respuesta recomendada al enviar
datos de texto o contenidos de archivos.
Warning
Las entradas data: y body: son mutuamente excluyentes.
data: (mutuamente excluyente con 'body:')¶
Contiene un mapa clave-valor de datos para una respuesta JSON, XML o YAML.
Por ejemplo, el siguiente YAML de respuesta:
data: name: Me address: 123 Elm St.
Producirá el siguiente JSON de Respuesta:
HTTP/1.1 200 OK Cache-Control: no-cache Pragma: no-cache Content-Type: application/json; charset=utf-8 { "name": "Me", "address": "123 Elm St." }
Warning
Las entradas data: y body: son mutuamente excluyentes.
headers:¶
Un mapa clave-valor de encabezados que se enviarán como respuesta:
headers: content_type: application/csv Content-Disposition: attachment;filename=example.csv
Las claves se escribirán en mayúsculas y los espacios y guiones bajos se convertirán en guiones, para hacerlas compatibles con el protocolo HTTP y los estándares web.
cookies:¶
Este es un ayudante de encabezado para facilitar el envío de cookies como respuesta.
cookies: my-cookie: value: my cookie value expires: +3M # relativo o solo una fecha max-age: +2D # igual que expires, pero relativo path: / # cookie solo devuelta a rutas coincidentes domain: mydomain # controla qué dominios obtendrán la cookie secure: 1 httponly: 1 # hace que la cookie sea inaccesible mediante JavaScript
content_type:¶
Esto establecerá el encabezado de respuesta Content-Type.
Es un atajo a headers: { content_type: ... }.
content_type: application/json data: somekey: 123
status:¶
Establece el estado HTTP de la respuesta.
Típicamente, no es necesario establecer el estado, ya que esto se hace automáticamente por el servidor Clarive al generar la respuesta final del webservice.
Si se establece un valor, sobrescribirá la respuesta del servidor.
Tenga en cuenta que establecer un estado HTTP incorrecto puede causar un comportamiento no deseado en cualquiera de los puntos finales a lo largo de la ruta solicitud-respuesta.
location:¶
Establece el encabezado de respuesta location.
Esto es solo un atajo a headers: { location: .... }
URL de Solicitud de Webservice¶
Para controlar aún más la respuesta, es importante usar la URL de llamada correcta a la regla del webservice.
El significado de los parámetros data: (y body:) depende
de la parte de formato de ruta URL de la solicitud a la regla. Esto significa que
la misma regla podría llamarse con diferentes formatos de datos
de solicitud: json, xml, raw.
Significados del parámetro data::
https://clariveserver/rule/raw/: YAMLhttps://clariveserver/rule/json/: JSONhttps://clariveserver/rule/xml/: XML
Significados del parámetro body::
https://clariveserver/rule/raw/: YAMLhttps://clariveserver/rule/json/: no se usahttps://clariveserver/rule/xml/: el contenido de cadena de body se envuelve dentro de la siguiente plantilla XML<clarive>(body)</clarive>, y body se traducirá a la estructura de datos correspondiente.