Mappage des ressources REST aux noms BOD (Business Object Document)
Les services REST sont intégrés sur les services OAGIS. Chaque ressource REST est mappée à un nom BOD (Business Object Document). Un fichier de configuration XML est fourni pour effectuer une transformation entre un nom BID et des données REST. La structure des services REST utilise ensuite ce fichier de configuration pour générer des données de réponse REST à partir d'un objet BOD et construire un objet BOD à partir de données de requête REST.
Par défaut, les fichiers de configuration XML sont packagés sous le répertoire suivant : Rest.war/WEB-INF/config/bodMapping
Les noms de fichier doivent être au format suivant : rest-resourceName-clientobjects.xml. Ils utilisent le même schéma que le Centre de gestion.
- 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>
Où :- 1 nom URLParameterGroup
- Le nom du groupe de paramètres d'URL. Les services REST s'appuient sur ce groupe et les paramètres URLParameters qui s'y trouvent pour effectuer le mappage.
- 2 IncludeURLParameterGroupurlParameterGroup
- Indique un groupe de paramètres d'URL déclaré à inclure dans le groupe de paramètres d'URL en cours. Les noms des paramètres d'URL des groupes de paramètres d'URL inclus seront fusionnés afin de décrire un nom de paramètre d'URL complet pour le mappage d'élément ou d'attribut de nom.
- 3 nounElement pour l'objet Afficher
- L'élément ou attribut de l'objet Afficher avec lequel la valeur doit être associée. Pour mapper à un élément, utilisez le format
nounElement="/ElementName". Pour mapper à un attribut, utilisez le formatnounElement="/ElementName/@AttributeName". - 4 nom URLParameter
- Nom du paramètre d'URL. Il deviendra une clé dans la mappe des données REST.
- 5 nounElement pour objet de nom
- L'élément ou attribut de l'objet de nom avec lequel la valeur doit être associée. Pour mapper à un élément, utilisez le format
nounElement="/ElementName". Pour mapper à un attribut, utilisez le formatnounElement="/ElementName/@AttributeName". - 6 touche
- Facultatif : Identificateur unique du nom ou type complexe du nom. La valeur par défaut est false.
- 7 retour
- Facultatif : Indique si l'élément Noun doit être inclus dans la réponse lors de la génération de l'objet réponse. La valeur par défaut est false sauf si la valeur de l'attribut key est true.
- 8 type
- Facultatif : Type de données de l'élément ou de l'attribut de nom. Si la valeur de UserData est indiquée, le mappage du paramètre d'URL revêt une signification particulière et le nom du paramètre d'URL commence par l'attribut de nom indiqué. Les paramètres d'URL de type UserData où le nom de l'élément fait partie du nom du paramètre d'URL ont un comportement d'analyse syntaxique propre. Le nom et la valeur sont mappés sur un nouvel objet, comme indiqué par l'attribut nounElement. Vous pouvez également indiquer l'élément UserDataAssociation pour un mappage d'objet plus complexe.
<_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" />
Vous pouvez créer un fichier de configuration d'extension pour remplacer le mappage de données par défaut. Vous devez créer une version personnalisée du fichier dans un nouveau dossier. La version personnalisée du fichier ne doit contenir que les propriétés modifiées.
La procédure suivante est également applicable lorsque vous générez un nouveau service REST à l'aide du modèle de ressource JET. Dans ce cas, vous créez votre propre fichier rest-resourceName-clientobjects.xml pour effectuer une transformation entre votre nom BOD et vos données REST.
Procédure
- Ouvrez HCL Commerce Developer et basculez vers la vue Explorateur d'entreprise.
- Créez un fichier de mappage de données personnalisé (rest-resourceName-clientobjects.xml), si aucun n'existe déjà :
- Ajoutez les éléments XML de base requis pour votre fichier rest-resourceName-clientobjects.xml personnalisé.
- Ajoutez le fichier XML pour toutes les propriétés que vous souhaitez modifier dans votre fichier personnalisé rest-resourceName-clientobjects.xml :
- Sauvegardez et fermez le fichier de configuration personnalisé.
- Testez vos changements de configuration.
Que faire ensuite
- Créez un fichier de mappage de données personnalisé (rest-resourceName-clientobjects.xml) sous le répertoire Rest.war/WEB-INF/config/bodMapping-ext. Ce fichier est votre fichier rest-resourceName-clientobjects.xml personnalisé.
- Déterminez la valeur URLParameterGroup pour les zones de données supplémentaires. Par exemple :
<_config:URLParameterGroup name="productSummary" noun="CatalogNavigationView"> - Ajoutez des attributs de données supplémentaires sous URLParameterGroup.
- Redémarrez votre serveur HCL Commerce pour que la personnalisation prenne effet.