Ajout ou modification de modèles REST
Pour que les personnalisations du contrôleur d'action Spring puissent communiquer avec le Transaction server et le Search server, leurs ajouts et personnalisations doivent être convertis en messages REST structurés. Le modèle REST associe chaque méthode de contrôleur d'action à l'appel REST approprié via HTTP. Par conséquent, toute modification des actions par défaut ou de tout autre contrôleur d'action ou méthode de contrôleur d'action doit disposer des mappages de modèle REST correspondants.
Les modèles REST par défaut se trouvent dans le fichier suivant : crs-web/WebContent/WEB-INF/xml/config/componentDir/rest-template-config.xml
Procédure
-
Etendez le fichier de configuration du modèle REST pour le composant que vous modifiez ou créez dans l'archive Web des magasins (crs-web.war).
Pour étendre ce modèle, copiez-le directement dans crs-web.war/WEB-INF/xml/config/componentDir/rest-template-config-ext.xml. S'il s'agit d'un nouveau composant, veillez à l'ajouter sous un nouveau répertoire de composant (componentDir).
L'emplacement et le contenu de ce fichier sont les suivants :
Les modèles REST définissent les formats de requête pour les services REST qui sont exécutés par les contrôleurs Spring sur le Store server. Chaque contrôleur d'action appelle les services REST tels que définis dans les modèles REST pour l'exécution de la logique métier. Les services REST définis dans les modèles REST sont regroupés par définitions de ressources et chaque définition de ressource est subdivisée en définitions de méthode :- Une ressource est caractérisée par un chemin qui est un préfixe d'URI commun à un groupe de services REST.
- Chaque définition de méthode est caractérisée par le chemin restant après le chemin de ressource dans l'URI complète d'un service REST.
- crs-web.war/WEB-INF/xml/config/componentDir/rest-template-config.xml
Ces fichiers contiennent la configuration du modèle REST pour chaque composant.
Le contenu de ces fichiers apparaît comme suit :
<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>Où :- resource
- Ressource REST.
- chemin
- URL de la ressource REST. La variable de cette URL est modifiée dynamiquement. Par conséquent, elle doit être placée entre accolades ('{}'), et sa valeur est définie par les entrées serverParam suivantes.
- nom
- Nom de ressource défini du service.
- serverParam
- Cet élément est un sous-élément de la balise de ressource.
Variables utilisées dans le chemin de la ressource. Les variables serverHost, contextPath et storeId sont automatiquement résolues pour être les valeurs pour le serveur HCL Commerce d'arrière-plan, basé sur le schéma de requête et le mode d'aperçu en cours. D'autres paramètres sont obtenus à partir des paramètres de demande actuels.
- méthode
- Cet élément est un sous-élément de la balise de ressource.
Définition de la méthode.
- nom
- Nom de la méthode définie. Avec le nom de la ressource, il devient la propriété de paramètre définie dans la définition du contrôleur d'action. Par exemple, pour cet exemple de service, le paramètre est
loginIdentityHandler.logonAndChangePassword. - httpMethod
- Méthode HTTP pour cette demande REST.
- path
- Partie de la méthode de la ressource REST dans l'URL. Par exemple, le chemin de la méthode pour le service
/store/{storeId}/person/@selfest @self. Si ce paramètre est laissé vide, l'URL du chemin de ressource utilisée est l'URL complète.
- modèle
- Valeurs d'entrée requises par la demande REST au format JSON. Pour les services POST, PUT et DELETE, le corps JSON est au format de ce modèle. Pour les services GET, les variables du modèle sont ajoutées dans l'URL en tant que paramètres de requête. Les valeurs des variables sont trouvées à partir des propriétés de la demande, en utilisant les valeurs des modèles sans le signe dollar comme nom de la propriété de la demande. Si une valeur de variable ne comporte pas le signe dollar, la valeur de variable dans le modèle est la valeur composée à la demande REST.
Remarque : Vous n'avez pas besoin de configurer le format de réponse REST pour le modèle REST. Le format de réponse est configuré en fonction du serveur de transactions. - Modifiez le modèle REST en fonction de la ressource ou de la méthode REST que vous créez, étendez ou modifiez.
- Sauvegardez le fichier.
- Redémarrez le serveur du magasin.