Personnalisation et configuration des ressources REST à l'aide de la structure de mappage BOD
Les services REST sont construits sur les services OAGIS, et utilisent un profil d'accès et un chemin XPath pour obtenir des données à partir d'un nom OAGIS. Les profils d'accès utilisés par les services REST sont définis par défaut dans un fichier de configuration. Vous pouvez étendre le fichier de configuration pour remplacer le mappage de données.
Le fichier de configuration par défaut est stocké à l'emplacement suivant :- Rest.war/WEB-INF/config/com.ibm.commerce.rest/wc-rest-resourceconfig.xml
- Rest.war/WEB-INF/config/com.ibm.commerce.rest-ext/wc-rest-resourceconfig.xml
Personnalisation des ressources REST
Lors de la personnalisation du fichier de configuration, vous devez tenir compte des facteurs suivants :
- Déterminer quel nom de ressource vous souhaitez personnaliser. Par exemple,
productview. - Déterminer quelle
GetUrivous souhaitez personnaliser. Par exemple, la premièreGetUridans le fragment suivant qui obtient des produits par numéro de pièce :<Resource name="productview"> <GetUri uri="store/{storeId}/productview/{partNumber}" description="Get product by part number" accessProfile="IBM_Store_CatalogEntrySearch" searchProfile="IBM_findCatalogEntryAll"/> <GetUri uri="store/{storeId}/productview/byId/{productId}" description="Get product by unique ID" accessProfile="IBM_Store_CatalogEntrySearch" searchProfile="IBM_findCatalogEntryAll"/> <GetUri uri="store/{storeId}/productview/byCategory/{categoryId}" description="Get products by category unique ID" accessProfile="IBM_Store_Details" searchProfile="IBM_findCatalogEntryByNameAndShortDescription"/> <GetUri uri="store/{storeId}/productview/bySearchTerm/{searchTerm}" description="Search products by search term and meta data" accessProfile="IBM_Store_CatalogEntrySearch" searchProfile="IBM_findCatalogEntryByNameAndShortDescription"/> </Resource> - Ensuite, créez votre propre fichier wc-rest-resourceconfig.xml sous le répertoire suivant :
- Search-Rest/WEB-INF/config/com.ibm.commerce.rest-ext
Copiez les élémentsGetUrique vous souhaitez utiliser dans votre fichier d'extension et modifiez leaccessProfileou lesearchProfilepour répondre à vos besoins. Par exemple :<ResourceConfig> <Resource name="productview"> <GetUri uri="store/{storeId}/productview/{partNumber}" description="Get product by part number" accessProfile="MyCustomProfile"/> </Resource> </ResourceConfig>Si vous étendez le profil de recherche, vous devez également spécifier le profil de recherche. Par exemple :<ResourceConfig> <Resource name="productview"> <GetUri uri="store/{storeId}/productview/{partNumber}" description="Get product by part number" accessProfile="MyCompany_Store_Warranty" searchProfile="IBM_findProductByIds_Details,IBM_findProductByIdsWithAttributesAndAttachments,IBM_findProductByIds_Summary,IBM_findProductByIds_Summary_WithNoEntitlementCheck,IBM_Admin_findProductByIds,X_MySearchProfile"/> </Resource> </ResourceConfig>Les services REST transmettent le profil de recherche au service OAGIS sous-jacent. Si aucun profil de recherche n'est spécifié dans votre extension wc-rest-resourceconfig.xml, le profil de recherche par défaut défini dans wc-rest-resourceconfig.xml est utilisé.
- Après avoir terminé vos scénarios de personnalisation, vous devez redémarrer votre serveur HCL Commerce.
Exemple : Définition de l'URI pour la récupération de données
Vous pouvez utiliser les exemples de fragments suivants pour récupérer des données :
<Resource name="productview">
<GetUri uri="store/{storeId}/productview/{partNumber}" description="Get product by part number"
accessProfile="IBM_Store_CatalogEntrySearch" searchProfile="IBM_findCatalogEntryAll"/>
<GetUri uri="store/{storeId}/productview/byId/{productId}" description="Get product by unique ID"
accessProfile="IBM_Store_CatalogEntrySearch" searchProfile="IBM_findCatalogEntryAll"/>
<GetUri uri="store/{storeId}/productview/byCategory/{categoryId}" description="Get products by category unique ID"
accessProfile="IBM_Store_Details" searchProfile="IBM_findCatalogEntryByNameAndShortDescription"/>
<GetUri uri="store/{storeId}/productview/bySearchTerm/{searchTerm}" description="Search products by search term and meta data"
accessProfile="IBM_Store_CatalogEntrySearch" searchProfile="IBM_findCatalogEntryByNameAndShortDescription"/>
</Resource>