Etiqueta: REST
La etiqueta wcf:rest
envía solicitudes de REST.
Esta etiqueta JSP toma entrada y envía solicitudes de REST y, a continuación, compone las respuestas en un formato especificado. Una etiqueta REST, que se define como una plantilla, no envía solicitudes de REST pero conserva sus parámetros en la memoria como entrada predeterminada. A continuación, proporciona un mecanismo que puede reutilizar la plantilla sin identificar todos los parámetros, solo los modificados. Este enfoque es similar a expressionBuilder en el perfil de acceso de REST de la etiqueta wcf:getData
. Se pasa un parámetro a la etiqueta REST para determinar el cálculo del servidor y cuántos datos detallados se consultan para el recurso. Admite dos tipos de formato. Un tipo de formato es el mismo al del perfil de acceso tradicional y el perfil de búsqueda en un servicio Web, una cadena significativa que indica solo los detalles de consulta; el otro tipo de formato es detallado, que identifica todos los campos necesarios del recurso.
Una etiqueta REST puede tener varias etiquetas param
. Estas etiquetas se componen en la solicitud de REST al servidor de REST como un parámetro o un cuerpo de solicitud, que incluye parámetros comunes como langid, Currency o pageSize wcf:header
.
Una etiqueta REST puede tener varias etiquetas de cabecera. Estas etiquetas se componen en la solicitud de REST al servidor de REST como una cabecera de solicitud, que incluye parámetros como WCToken y WCTrustedToken.
Las API de REST de las memorias caché de la etiqueta wcf:rest
llaman al nivel de solicitud utilizando la firma de llamada. Para obtener más información, consulte Almacenamiento en memoria caché para servicios REST.
Información de etiqueta | |
---|---|
Contenido del cuerpo | JSP |
Atributos
Nombre: | Obligatorio | Tiempo de petición | Tipo | Descripción: |
---|---|---|---|---|
var |
false |
true |
java.lang.String |
Este parámetro identifica el nombre de variable, que se utilizará para colocarse en un ámbito persistente como sesión o solicitud. Cuando la etiqueta se declara como una plantilla, este parámetro se puede ignorar. |
url |
false |
true |
java.lang.String |
Este parámetro identifica el URL real del servicio de REST. Este parámetro admite las direcciones absolutas o relativas. Para las direcciones relativas, un desarrollador debe identificar la vía de acceso que empieza desde el nombre de recurso. El sistema añade automáticamente el nombre de host, la vía de acceso del servlet y el nombre de la tienda. Para las direcciones relativas, un desarrollador también necesita especificar el esquema de HTTP, que toma de forma predeterminada el valor http . |
schema |
false |
true |
java.lang.String |
Este parámetro especifica el esquema cuando el parámetro URL no es una vía de acceso absoluta. El sistema de etiquetas obtiene un valor predeterminado de la configuración como nombre de host, vía de acceso de contexto y storeId. Aquí se especifica el parámetro Schema. |
accessProfile |
false |
true |
java.lang.String |
AccessProfile se utiliza para invocar el servicio Web de fondo, que decide la cantidad de datos que se solicitan, similar al parámetro Fields. El perfil de acceso se configura previamente en el servidor de REST y no se puede cambiar. Cuando se especifica este parámetro, la infraestructura de REST utiliza el transmitido para sustituir el predeterminado. |
searchProfile |
false |
true |
java.lang.String |
En los servicios de REST relacionados con el catálogo, searchProfile se utiliza para invocar el servicio Web de fondo, que decide la cantidad de datos que se solicita, similar al parámetro Fields. El searchProfile está preconfigurado en el servidor de REST y no se puede cambiar. Cuando se especifica este parámetro, la infraestructura de REST utiliza el transmitido para sustituir el predeterminado. |
format |
false |
true |
java.lang.String |
Este parámetro decide el formato de la variable de salida, que puede ser JSON, XML o RAW. Si se establece el valor en JSON, se proporciona un objeto de tipo objeto JSONObject o JSONArray en función de los datos devueltos por la API de REST; XML proporciona un objeto en tipo org.w3c.dom.Document y raw proporciona un objeto en tipo String. El valor predeterminado para este parámetro es json. |
cached |
false |
true |
java.lang.String |
El almacenamiento en memoria caché del lado del cliente se puede utilizar con archivos JSP de escaparate si el servicio REST al que se llama se marca como cacheable . (Tenga en cuenta que en el caso de la tienda Aurora, el cliente es el servidor de aplicaciones (contenedor de Servlets) que aloja las páginas JSP que incluyen los códigos de REST y, por lo tanto, el almacenamiento en memoria caché se producirá en el servidor de aplicaciones y no en el navegador que consume la salida de las páginas JSP.) Para poder utilizar el almacenamiento en memoria caché del lado del cliente, establezca el valor de cached en "true" . La respuesta de solicitudes REST basada en el URL y los parámetros anteriores se almacena en memoria caché dentro de la memoria caché de datos que se llama RESTTagCache , con el nombre JNDI de memoria caché services/cache/WCRESTTagDistributedMapCache . Este almacenamiento en memoria caché es aplicable a los servicios REST proporcionados por ambos servidores, HCL Commerce y búsqueda de HCL Commerce. |
scope |
false |
false |
java.lang.String |
El ámbito del servicio REST. |
headerStrategy |
false |
false |
java.lang.String |
Este parámetro decide cómo se componen las cabeceras de HTTP en la etiqueta. Los valores permitidos son:
|
connectTimeout |
false |
false |
java.math.BigInteger |
El tiempo que se debe esperar, en milisegundos, antes de que se establezca una conexión de HTTP con el servidor de destino. El valor predeterminado es 30.000. |
readTimeout |
false |
false |
java.math.BigInteger |
El tiempo que se debe esperar, en milisegundos, antes de que se obtenga una respuesta. El valor predeterminado es 30.000. |
elementos
wcf:rest
contiene los elementos siguientes:wcf:header
, que añade una cabecera HTTP a una solicitud de REST.wcf:var
, que establece la variable dentro de una solicitud de REST.
Variables
No se han definido variables para la etiqueta wcf:rest
.
Ejemplo
Normal usage to get a product
<wcf:rest var="product" url="productview/byId/10001"/>
Solución de problemas
<wcf:rest var="myProductData" url="/store/{storeId}/productview/{partNumber}">
<wcf:var name="storeId" value="12051" encode="true"/>
<wcf:var name="partNumber" value="VESTS-FabricBackVest_SKU" encode="true"/>
</wcf:rest>
${myProductData}
result:
{"responseCode":404}
Este error se produce porque url="/store/{storeId}/productview/{partNumber}"
se codifica del lado del servidor. Esta codificación está controlada por el atributo wcsRestTagSkipMandatorySearchEncoding
en el contexto de página, que cambia la entrada /store/{storeId}/productview/{prtn}
a /store/{storeId}/productview/%7Bprtn%7D
. Esto hace que se devuelva un partNumber incorrecto.wcsRestTagSkipMandatorySearchEncoding=true
. Sin embargo, se trata de un parámetro de búsqueda obligatorio. Una solución mejor es permitir que JSP resuelva el valor. Por ejemplo, la siguiente llamada será exitosa:<c:set var="partNumber" value="${value for the part number}"/>
<wcf:rest var="myProductData" url="/store/{storeId}/productview/${partNumber}">
<wcf:var name="storeId" value="12051" encode="true"/>
</wcf:rest>