Correlación de recursos REST con nombres BOD (Documento de objeto de negocio)
Los servicios REST se crean sobre servicios OAGIS. Cada recurso REST se correlaciona con un nombre BOD (Documento de objeto de negocio). Se proporciona un archivo de configuración XML para transformar entre un nombre BOD y datos REST. Entonces, la infraestructura de servicios REST utiliza este archivo de configuración para generar datos de respuesta REST a partir de un objeto BOD y construir un objeto BOD a partir de los datos de petición REST.
De forma predeterminada, los archivos de configuración XML se empaquetan en el directorio siguiente: Rest.war/WEB-INF/config/bodMapping
Los nombres de archivo deben estar en el formato siguiente: rest-resourceName-clientobjects.xml. Utilizan el mismo esquema que el Centro de gestión.
- rest-cart-clientobjects.xml
- rest-categoryview-clientobjects.xml
- rest-espot-clientobjects.xml
- rest-geonode-clientobjects.xml
- rest-inventoryavailability-clientobjects.xml
- rest-order-clientobjects.xml
- rest-person-clientobjects.xml
- rest-productview-clientobjects.xml
- rest-storelocator-clientobjects.xml
- rest-wishlist-clientobjects.xml
<!-- Product summary data -->
<_config:URLParameterGroup name="productSummary" 1 noun="CatalogNavigationView">
<_config:IncludeURLParameterGroup urlParameterGroup="price" 2 />
<_config:IncludeURLParameterGroup urlParameterGroup="facet" />
<_config:IncludeURLParameterGroup urlParameterGroup="breadCrumbTrail" />
<_config:IncludeURLParameterGroup urlParameterGroup="previewReport" />
<_config:IncludeURLParameterGroup urlParameterGroup="suggestion" />
<_config:IncludeURLParameterGroup urlParameterGroup="webContent" />
<_config:URLParameter name="recordSetComplete" nounElement="/Show/@recordSetCompleteIndicator" 3
key="false" return="true" />
<_config:URLParameter name="recordSetTotal" nounElement="/Show/@recordSetTotal"
key="false" return="true" />
<_config:URLParameter name="recordSetCount" nounElement="/Show/@recordSetCount"
key="false" return="true" />
<_config:URLParameter name="recordSetStartNumber" nounElement="/Show/@recordSetStartNumber"
key="false" return="true" />
<_config:URLParameter name="CatalogEntryView/productType" 4
nounElement="/CatalogEntryView/@CatalogEntryTypeCode" 5
key="false" 6 return="true" 7 />
<_config:URLParameter name="CatalogEntryView/buyable" nounElement="/CatalogEntryView/@buyable"
key="false" return="true" />
<_config:URLParameter name="CatalogEntryView/uniqueID" nounElement="/CatalogEntryView/UniqueID"
key="true" return="true" />
<_config:URLParameter name="CatalogEntryView/partNumber" nounElement="/CatalogEntryView/PartNumber"
key="false" return="true" />
......
<!-- UserData Section -->
<_config:URLParameter name="x_" nounElement="/UserData/UserDataField" return="true" type="UserData" 8 />
</_config:URLParameterGroup>
Donde:- 1 Nombre de URLParameterGroup
- El nombre del grupo de parámetros URL. Los servicios REST se basan en este grupo y los URLParameters que tienen debajo para realizar la correlación.
- 2 IncludeURLParameterGroupurlParameterGroup
- Especifica un grupo de parámetros URL declarados que se incluirán como parte del grupo de parámetros URL actuales. Los nombres del parámetro URL de los grupos de parámetros URL incluidos se fusionarán para describir un nombre de parámetro URL completo a elemento de nombre y correlación de atributos.
- 3 nounElement del objeto Show
- El elemento o atributo del objeto Show con el que debe asociarse el valor. Para correlacionar con un elemento, utilice el formato
nounElement="/ElementName"
. Para correlacionar con un atributo, utilice el formatonounElement="/ElementName/@AttributeName"
. - 4 Nombre de URLParameter
- El nombre del parámetro de URL. Se convertirá en una clave en la correlación de datos REST.
- 5 nounElement para el objeto noun
- El elemento o atributo del objeto noun con el que debe asociarse el valor. Para correlacionar con un elemento, utilice el formato
nounElement="/ElementName"
. Para correlacionar con un atributo, utilice el formatonounElement="/ElementName/@AttributeName"
. - 6 clave
- Opcional: El identificador exclusivo del nombre o el tipo completo del nombre. El valor predeterminado es false.
- 7 devolver
- Opcional: Especifica si el elemento de nombre debe incluirse en la respuesta cuando se crea el objeto de respuesta. El valor predeterminado es false a menos que el valor del atributo de clave sea true.
- 8 tipo
- Opcional: El tipo de datos de elemento o atributo de nombre. Si se especifica un valor de UserData, la correlación de parámetros URL tiene un significado especial y el nombre de parámetro URL empieza por el atributo del nombre especificado. Los parámetros URL de tipo UserData donde el nombre del elemento forma parte del nombre de parámetro URL tienen un comportamiento de análisis especial. El nombre y el valor están correlacionados con un objeto nuevo, según lo indicado mediante el atributo nounElement. También puede especificar un elemento UserDataAssociation para una correlación de objetos más compleja.
<_config:URLParameter name="orderItem/orderItemId" nounElement="/OrderItem/OrderItemIdentifier/UniqueID" key="true" return="true" />
<_config:URLParameter name="orderItem/externalOrderItemID" nounElement="/OrderItem/OrderItemIdentifier/ExternalOrderItemID" key="false" return="true" />
<_config:URLParameter name="orderItem/productId" nounElement="/OrderItem/CatalogEntryIdentifier/UniqueID" key="false" return="true" />
Puede crear un archivo de configuración de extensión para sobrescribir la correlación de datos predeterminada. Debe crear una versión personalizada del archivo en una nueva carpeta, con la versión personalizada del archivo, que solo debe contener las propiedades cambiadas.
El procedimiento siguiente también se aplica cuando se genera un servicio REST nuevo utilizando el patrón de recursos JET. En este caso, creará su propio rest-resourceName-clientobjects.xml para realizar transformaciones entre su nombre BOD y los datos REST.
Procedimiento
- Abra HCL Commerce Developer y cambie a la vista Explorador de empresa.
- Cree un archivo de correlaciones de datos personalizado (rest-resourceName-clientobjects.xml), si aún no existe ninguno.
- Añada los elementos XML básicos que son necesarios para el archivo rest-resourceName-clientobjects.xml personalizado.
- Añada XML para cualquiera de las propiedades que desee cambiar en el archivo rest-resourceName-clientobjects.xml personalizado:
- Guarde y cierre el archivo de configuración personalizado.
- Pruebe los cambios de configuración.
Qué hacer a continuación
- Cree un archivo de correlaciones de datos personalizado (rest-resourceName-clientobjects.xml) debajo del directorio Rest.war/WEB-INF/config/bodMapping-ext. Este archivo es el archivo rest-resourceName-clientobjects.xml personalizado.
- Decida el valor URLParameterGroup para los campos de datos adicionales. Por ejemplo:
<_config:URLParameterGroup name="productSummary" noun="CatalogNavigationView">
- Añada atributos de datos adicionales debajo del valor URLParameterGroup.
- Reinicie el servidor de HCL Commerce para que entre en vigor la personalización.