Servicios REST (Representational State Transfer)
REST (Representational State Transfer) es una infraestructura ligera para diseñar aplicaciones que utilizan HTTP para realizar llamadas. REST utiliza HTTP para realizar operaciones Create, Read, Update y Delete (CRUD) entre cliente y servidor. Las aplicaciones interactúan con los servicios utilizando operaciones HTTP, POST, PUT, GET y DELETE.
HCL Commerce utiliza servicios de Transferencia de Estado Representacional (REST - Representational State Transfer) para proporcionar una infraestructura que se puede utilizar para desarrollar aplicaciones RESTful en varias plataformas. Estas plataformas pueden incluir aplicaciones web, móvil, quioscos y sociales.
Comparativamente, REST puede realizar las mismas funciones que SOAP (Simple Object Access Protocol) y que WSDL (Web Services Description Language).
REST es una plataforma independiente del idioma y dado que está basada en HTTP, es compatible en entornos protegidos mediante cortafuegos. REST puede utilizar conexiones seguras a través de HTTPS para aprovechar las características de seguridad HTTPS como las señales de cifrado o nombre de usuario y contraseña.
Las llamadas REST incluyen toda la información necesaria para devolver resultados (de transferencia de estado), lo que elimina la necesidad de cookies cuando se utilizan los servicios REST en el escaparate.
LogonCmd
y LogoffCmd
.Puede crear servicios REST utilizando el mandato de controlador basado en configuración y la infraestructura de correlación de beans de datos. Ayuda a crear servicios REST y automatiza las correlaciones utilizando el programa de utilidad restClassicSampleGen y permite la activación de beans de datos o la ejecución de mandatos de controlador utilizando servicios REST.
API de REST disponible
Características de los servicios REST
- Utiliza un sistema cliente-servidor.
- Carece de estado.
- Soporta almacenamiento en memoria caché de recursos.
- Se da soporte a servidores proxy.
- Utiliza URL lógicos para identificar recursos.
Abstracción de los servicios REST
![Diagrama de la abstracción de los servicios REST](../images/locale/wvrestabs.gif)
Donde:
- Los Proveedores de contexto incorporados buscan ciertos elementos en la solicitud, como el ID de tienda, el ID de idioma o la identidad de usuario. Los Proveedores de contexto utilizan estos elementos para crear el contexto adecuado que se utiliza para recuperar o actualizar el Documento de objeto de negocio (BOD) en HCL Commerce. Los proveedores de contexto primarios son:
- Proveedor de contexto de negocio
- Proveedor de contexto de seguridad
- Los Manejadores de recursos representan los puntos de entrada para las solicitudes de recursos y se anotan con la vía de acceso, el contexto y cualquier otra información que puedan necesitar para manejar una solicitud. Los manejadores de recursos se encargan de coordinar la solicitud y la respuesta BOD y de convertir la solicitud y la respuesta a y desde un formato que pueda consumir el cliente utilizando elementos del protocolo HTTP estándar. También son responsables de las representaciones de recursos compuestos en las que hay más de un BOD u origen integrados. Además, los manejadores de recursos también son responsables de asegurar que los recursos relacionados estén identificados y especificados correctamente en la representación.
Cada manejador de recursos implementa la interfaz com.ibm.commerce.foundation.rest.resourcehandler.IResourceHandler. Puede personalizar un manejador de recursos sustituyendo sus métodos.
- Los Ayudantes ayudan a los manejadores de recursos a establecer un puente con la capa de BOD y permiten un código común reutilizable entre los manejadores. También hay ayudantes para almacenar configuración, construir los URI y para aplicar los requisitos de seguridad de transporte que se especifican para los manejadores de recursos.
- Los Correlacionadores de datos son archivos de configuración que se utilizan para transformar representaciones de recursos a y desde atributos BOD. Esto le permite personalizar de forma declarativa la representación.
- Los Proveedores de entidades predeterminados permiten la codificación estándar de las respuestas en formato JSON o XML en función de los correlacionadores de datos. Puede añadir sus propios proveedores personalizados para otros tipos de soporte que se adapten a las necesidades de su empresa.
- Las Plantillas de recursos son un mecanismo para permitirle representar representaciones personalizadas, tales como XHTML, utilizando un archivo JSP.
Servicios REST en HCL Commerce
![Plataformas de clientes REST y servidores](../images/locale/wvrestwc.gif)
Donde:
- Aplicaciones móviles
- Los servicios REST permiten el desarrollo de aplicaciones móviles que aprovechan las interfaces de usuario nativas específicas de la plataforma de dispositivos, o un navegador web integrado para la experiencia del usuario y servicios REST para datos y actualizaciones.
- Aplicaciones web
- Las aplicaciones web pueden incluir escaparates tradicionales, o funciones web específicas que proporcionan la funcionalidad de HCL Commerce mediante servicios REST. La cantidad de interacciones entre cliente web y servidor puede variar con los servicios REST que caracterizan a estas aplicaciones.
- Aplicaciones sociales
- Estas aplicaciones se representan dentro de contenedores sociales, como Facebook. Las aplicaciones sociales pueden ampliar las experiencias de compra y del cliente.
- Aplicaciones de quiosco/escritorio
- Estas aplicaciones aprovechan servicios de HCL Commerce para conectar los compradores de ubicación de tienda con la tienda y servicios en línea.
Interacción de servicios REST
![Diagrama de flujo de interacción de servicios REST](../images/locale/wvrestinteractionflow.gif)
- Autentica un usuario registrado o crea un usuario invitado.
- Invoca una solicitud de servicio de miembro.
- Devuelve una identidad autenticada.
- Crea señales de autenticación.
- Devuelve las señales WCToken y WCTrustedToken.
- Genera una respuesta en el formato solicitado.
- Devuelve un objeto de respuesta al cliente.
- Crea una solicitud de servicio con señales de seguridad.
- Invoca manejadores de solicitudes y BCS.
- Verifica las señales de seguridad según el tiempo de ejecución.
- Correlaciona recursos de JAX-RS con servicios de componentes de HCL Commerce, genera y envía solicitudes de servicio.
- Devuelve el resultado como objeto de datos de servicio (SDO).
- Correlaciona el SDO con el formato de datos solicitado.
- Devuelve el objeto de respuesta al cliente.
- Crea una solicitud de servicio con señales de seguridad.
- Invoca manejadores de solicitudes y BCS.
- Verifica las señales de seguridad según el tiempo de ejecución.
- Correlaciona recursos de JAX-RS con:
- Mandatos de controlador de HCL Commerce para ejecutar el mandato.
- Beans de datos de HCL Commerce para realizar la activación de beans de datos.
- Devuelve los resultados en:
TypedProperty
por mandato de controlador.TypedProperty
por manejador de recursos.
- Devuelve el objeto de respuesta al cliente.
Los formatos de respuesta JSON y XML se soportan de forma predeterminada.
Parámetros generales de consulta
- responseFormat
- El formato de respuesta de la solicitud. De forma predeterminada, se da soporte a los formatos JSON y XML. Los valores de responseFormat son
xml
ojson
. El valor predeterminado esjson
.JSON es el único formato de respuesta soportado por la API REST de búsqueda de WebSphere Commerce de forma predeterminada. Por ejemplo, en los recursos CategoryViewHandler, ProductViewHandler y SiteContentHandler indicado por (Search).
Los formatos de respuesta JSON y XML se soportan de forma predeterminada.
Para los formatos personalizados, utilice letras en minúscula para el valor de formato de respuesta. Por ejemplo,
responseFormat=custom
.El formato de respuesta de la solicitud se determina utilizando la siguiente precedencia: el parámetro de consulta responseFormat en la URL, y luego el encabezado de solicitud HTTP Accept. En caso contrario,
json
es el formato de respuesta predeterminado. - langId
- El ID de idioma utilizado durante la consulta. Si no se especifica, se utiliza el ID de idioma predeterminado de la tienda.
- entorno nacional
- El entorno local de la solicitud.
- currency
- La moneda que se utiliza para mostrar valores monetarios en los datos de canal de información.
- catalogId
- El ID de catálogo utilizado durante la consulta. Si no se especifica, se utiliza el ID de catálogo predeterminado de la tienda.
- forUser
- El nombre de usuario de la solicitud.
- forUserId
- El ID de usuario de la solicitud.
- workspace.name
- Nombre del espacio de trabajo a utilizar.
- workspace.taskGroup
- Identificador del grupo de tareas en el espacio de trabajo.
- workspace.task
- Identificador de la tarea en el espacio de trabajo.
Limitaciones
- Revise los servicios REST disponibles para asegurarse de que la funcionalidad que está implementando está disponible. Por ejemplo, los códigos de promoción no están admitidos de forma predeterminada cuando se utilizan servicios REST en los flujos previos a pasar por caja y pasar por caja del carro.
- Los servicios REST están diseñados principalmente para funcionar con la tienda de inicio Aurora.
- Los manejadores de API de REST dependen de que la búsqueda de HCL Commerce funcione correctamente, ya que los servicios de búsqueda utilizan la navegación de catálogo basada en la búsqueda. Debe habilitar la búsqueda de HCL Commerce o personalizar los servicios REST para que se adapten a sus necesidades empresariales cuando trabaja con estos manejadores.
- La compresión de datos no está soportado por omisión, ya que podría provocar errores de búsqueda en el escaparate.
- Las API de REST que se correlacionan con los servicios BOD no pueden manejar determinados caracteres especiales debido a la forma en que se analiza XPath. Cuando se encuentran caracteres especiales, se devuelve un código de error de servidor interno 500, porque la infraestructura de BOD no maneja la excepción para devolver un código de error de respuesta distinto. Para evitar este problema, no utilice caracteres especiales como <, >, y , ' o " en las API de REST que se correlacionan con servicios BOD.
HCL Commerce API REST
HCL Commerce Los servicios REST son servicios REST JAX-RS basados en Apache Wink. Las clases de implementación contienen anotaciones JAX-RS, tales como @Path, @Produces, @Consumes, @QueryParam y @PathParam.