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
-
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.
- 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. - Modifique la plantilla REST basándose en el recurso REST o el método que haya creado, ampliado o modificado.
- Guarde el archivo.
- Reinicie el servidor de tienda.