Puntos finales personalizados

Puede utilizar la API de REST HCL Commerce proporcionada para crear su propio punto final de API personalizado, como recuperar datos para utilizarlos con aplicaciones personalizadas o para enviarlos a otros servicios de HCI o de terceros.

Creación de un punto final personalizado

Al crear un punto final personalizado, el punto final puede ser un envoltorio alrededor de la API de REST de Escaparate HCL Commerce existente (Transaction server). El punto final personalizado también puede ser un código personalizado que desee utilizar con la tienda o el entorno de HCL Commerce.

Cualquier API personalizada y los puntos finales que cree para la tienda deben crearse y empaquetarse dentro de un entorno de desarrollo basado en HCL Commerce Developer para su uso en Customization server. Dentro de un entorno de desarrollo, un nuevo archivo custom-endpoints se incluye un como un paquete dentro del proyecto commerceue-ear. Puede utilizar este paquete para crear la API de recursos. Dentro de este paquete se incluye un recurso de ejemplo que puede utilizar como referencia. Este recurso de ejemplo es un ejemplo de un punto final personalizado que se integra con la API de REST HCL Commerce.

Al crear su propio punto final personalizado, debe incluir el código personalizado con el directorio custom-endpoints/src/main/java/com/ibm/commerce/custom/rest del proyecto commerceue-ear. Este proyecto incluye una clase CustomApplication para enlazar recursos con la aplicación de puntos finales personalizados.

Para ver este proceso de enlace, elimine el comentario de la clase SampleResource para la clase CustomApplication y revise el procesamiento de código dentro de la modalidad de depuración. La clase SampleResource incluye una integración de API de ejemplo con la API de REST de Escaparate HCL Commerce.

Autenticación

Cualquier punto final personalizado que cree no están protegidos de forma predeterminada. Si está escribiendo la API para consultar o acceder a la API de REST de Escaparate, que tiene más privilegios para acceder a datos y servicios, asegúrese de incluir la autenticación necesaria. Cualquier API que utilice un punto final personalizado debe autenticarse antes de que la API pueda acceder a cualquier API de REST de escaparate predeterminada. La autenticación para la API de REST de Escaparate utiliza señales, que son específicas para HCL Commerce de la autenticación y se denominan "señales de WC".

Las señales de WC que debe utilizar para autenticar los puntos finales personalizados son los mismos que las que un comprador utiliza para iniciar sesión en la tienda HCL Commerce. Se generan señales de WC para autenticar a los compradores para una tienda HCL Commerce siempre que un comprador inicia la sesión en la tienda. Se llama a la API de login identity para autenticar al comprador y generar las señales necesarias. Para más información, consulte la de autenticación y gestión de sesiones.

Para obtener sus propias señales de WC, como por ejemplo para probar un punto final personalizado, llame a la API de login identity. Las señales se incluyen dentro de la respuesta para la solicitud de identidad de inicio de sesión. Incluya las señales de WC como cabeceras de solicitud HTTP para las solicitudes de API de REST de Escaparate.

Para obtener más información sobre cómo autenticar los puntos finales personalizados, revise el recurso de ejemplo para los puntos finales que se incluyen en HCL Commerce Developer. Utilice el recurso de ejemplo como modelo para autenticar los puntos finales personalizados.

Este recurso de ejemplo muestra cómo autenticar un punto final personalizado con una señal de WC para obtener datos de comprador y cómo autenticar una solicitud de datos privilegiados, como datos que no son sobre el comprador que emite la petición. La autenticación para obtener más datos privilegiados utiliza una autenticación adicional que HCL Commerce ha proporcionado. Esta autenticación adicional utiliza una señal web JSON (JWT) que HCL Commerce ha generado para autenticar solicitudes. Utilice este recurso de ejemplo como ayuda para aprender a estructurar y utilizar sus propios puntos finales personalizados para autenticar con señales de WC y JWT para obtener datos que no sean los datos del comprador.

Punto final personalizado de ejemplo

Se proporciona un recurso de punto final personalizado de ejemplo con tres API de ejemplo que llaman a dos API de REST de Escaparate REST y una API externa de terceros. Estas API de ejemplo también muestran las distintas opciones para autenticar un punto final personalizado.

Para probar el punto final personalizado de recurso de ejemplo en el entorno de programación, abra la clase para editarla /custom-endpoints/src/main/java/com/ibm/commerce/custom/rest/CustomApplication.java. Elimine el comentario de la línea donde SampleResource se añade la clase a la aplicación personalizada. Guarde y vuelva a iniciar la aplicación commerceue.
s.add(SampleResource.class);

Cuando se llama a la API de punto final personalizado de ejemplo, se validan las señales de WC. Si la validación es satisfactoria (la respuesta del servicio es 200 aceptar), el proceso de la solicitud continúa. Puede utilizar este ejemplo como modelo para escribir sus propios puntos extensiones personalizados.

El recurso de ejemplo incluye solicitudes a las siguientes API de REST:
  • Obtener todas las tiendas.
    El recurso llama a esta API para consultar el Transaction server para obtener una lista de todas las tiendas.
    curl -X GET \
     https://{domain}:{port}/rest/custom/sample/store-list-with-jwt \
     -H 'Content-Type: application/json' \
     -H 'WCToken: {WCToken}' \
     -H 'WCTrustedToken: {WCTrustedToken}'

    Esta solicitud de API autentica en primer lugar al usuario con señales de WC. Si es satisfactorio, se genera un JWT para la solicitud del comprador y se firma para su uso en la autenticación de la solicitud de la API para obtener los datos de la tienda. La autenticación JWT es necesaria porque los datos de la tienda son datos privilegiados que un comprador no puede obtener con la autenticación de señal de WC.

  • Obtener los datos de cuenta de usuario del comprador:
    curl -X GET \
     https://{domain}:{port}/rest/custom/sample/person-with-wctokens \
     -H 'Content-Type: application/json' \
     -H 'WCToken: {WCToken}' \
     -H 'WCTrustedToken: {WCTrustedToken}'

    El recurso llama a esta API para consultar la API de REST de Escaparate para recuperar datos sobre el usuario que llama a la API. La respuesta incluye los datos contextuales para el usuario que emite la llamada a la API de REST.

    Esta solicitud de API utiliza las señales de WC para la autenticación porque la solicitud está en el ámbito de los datos del comprador.

  • El recurso de ejemplo también incluye un ejemplo de una API de puntos finales personalizados que envuelve una API de REST externa de terceros. Este recurso consulta una API de REST que está alojada en las funciones IBM Cloud para obtener el mensaje 'Hello World'.
    curl -X GET \
     https://{domain}:{port}/rest/custom/sample/call-cloud-function \
     -H 'Content-Type: application/json' \
     -H 'WCToken: {WCToken}' \
     -H 'WCTrustedToken: {WCTrustedToken}'

    Esta solicitud de API utiliza las señales de WC para la autenticación.