Adición o modificación de plantillas REST

Para que las personalizaciones del controlador de acción Spring se comuniquen con el Transaction server y con el Search server, las adiciones y personalizaciones deben convertirse en mensajes REST estructurados. La plantilla REST correlaciona cada método de controlador de acción con la llamada REST adecuada a través de HTTP. Por lo tanto, cualquier modificación en las acciones predeterminadas o cualquier controlador de acción adicional o método de controlador de acción adicional deben tener las correlaciones con plantillas REST correspondientes.

Las plantillas REST predeterminadas se encuentran en el archivo siguiente: crs-web/WebContent/WEB-INF/xml/config/componentDir/rest-template-config.xml

Procedimiento

  1. Amplíe el archivo de configuración de plantillas REST para el componente que está modificando o creando en el archivador web de tiendas (crs-web.war).

    Para ampliar esta plantilla, cópiela directamente en crs-web.war/WEB-INF/xml/config/componentDir/rest-template-config-ext.xml. Si es un nuevo componente, asegúrese de añadirlo bajo un directorio de componente nuevo (componentDir).

    La ubicación y el contenido de este archivo es el siguiente:

    Las plantillas REST definen formatos de petición para los servicios REST que se ejecutan con controladores Spring en el Store server. Cada controlador de acción llama a los servicios REST definidos en las plantillas REST para ejecutar la lógica de negocio. Los servicios REST que están definidos en las plantillas REST se agrupan por definiciones de recursos y cada definición de recurso se subdivide en definiciones de método:
    • Un recurso se caracteriza por una vía de acceso que es un prefijo URI que es común para un grupo de servicios REST.
    • Cada definición de método se caracteriza por la vía de acceso restante después de la vía de acceso de recurso en el URI completo de un servicio REST.
    Cada recurso o método tiene un nombre. Un nombre de recurso y un nombre de método deben identificar de forma exclusiva un servicio REST. Para cada definición de método, hay una plantilla definida para componer una petición REST de los parámetros de una petición web. Para cada controlador de acción Spring, el nombre de recurso y el nombre de método del servicio REST que se va a ejecutar con este controlador está definido por una propiedad de la definición de este controlador en el archivo XML de configuración de Spring.
    • crs-web.war/WEB-INF/xml/config/componentDir/rest-template-config.xml

      Estos archivos contienen la configuración de plantilla REST para cada componente.

      El contenido de estos archivos aparece así:

      <resource path="{serverHost}/{contextPath}/store/{storeId}/loginidentity" name="loginIdentityHandler">
      <serverParam name="serverHost">$WCParam.serverHost</serverParam>
      <serverParam name="storeId">$WCParam.storeId</serverParam>
      …
      <method name="logonAndChangePassword" httpMethod="POST" path="">
      <template>
      <![CDATA[{"logonId" :
            "$logonId","logonPassword" :
            "$logonPasswordOld","logonPasswordNew" :
            "$logonPassword","logonPasswordVerify"
            : "$logonPasswordVerify"}]]>
      </template>
      </method>
      …
      </resource>
      Donde:
      resource
      El recurso REST.
      path
      El URL del recurso REST. La variable de este URL cambia dinámicamente. Por lo tanto, debe escribirse entre corchetes ('{}') y su valor se define con las entradas serverParam siguientes.
      name
      Nombre de recurso definido del servicio.
      serverParam
      Este elemento es un subelemento dentro de la etiqueta del recurso.

      Las variables que se utilizan en la vía de acceso del recurso. Las variables serverHost, contextPath e storeId se resuelven automáticamente en los valores del servidor de fondo HCL Commerce basándose en el esquema de petición actual y la modalidad de vista previa. Otros parámetros se obtienen de los parámetros de petición actual.

      method
      Este elemento es un subelemento dentro de la etiqueta del recurso.

      Definición del método.

      name
      Nombre del método definido. Junto con el nombre de recurso, se convierte en la propiedad de parámetro que está definida en la definición del controlador de acción. Por ejemplo, para este ejemplo de servicio, el parámetro es loginIdentityHandler.logonAndChangePassword.
      httpMethod
      El método HTTP para esta petición REST.
      path
      La parte de método del recurso REST del URL. Por ejemplo, la vía de acceso de método para el servicio /store/{storeId}/person/@self es @self. Si este parámetro se deja vacío, entonces el URL de la vía de acceso del recurso es el URL completo.
      plantilla
      Los valores de entrada necesarios en la petición REST en formato JSON. Para los servicios POST, PUT y DELETE, el cuerpo JSON está en este formato de plantilla. Para los servicios GET, las variables de la plantilla se añaden en el URL como parámetros de petición. Los valores de variable se encuentran en las propiedades de petición utilizando los valores de las plantillas sin símbolo de dólar como el nombre de propiedad de petición. Si un valor de variable no tiene el símbolo de dólar, el valor de la variable en la plantilla es el valor compuesto en la petición REST.
    Nota: No es necesario configurar el formato de respuesta REST para la plantilla REST. El servidor de transacción configura el formato de respuesta.
  2. Modifique la plantilla REST basándose en el recurso REST o el método que haya creado, ampliado o modificado.
  3. Guarde el archivo.
  4. Reinicie el servidor de tienda.

Resultados

Ahora, los mensajes REST que se pasan entre el Store server y el Transaction server y el Search server se adaptan a la nueva plantilla que se ha configurado.