Balise : rest
La balise wcf:rest envoie des requêtes REST.
Cette balise JSP prend l'entrée et envoie des requêtes REST, puis compose des réponses dans un format spécifié. Une balise REST, définie comme un modèle, n'envoie pas de requête REST, mais conserve ses paramètres en mémoire en tant qu'entrée par défaut. Ensuite, il fournit un mécanisme qui peut réutiliser le modèle sans identifier tous les paramètres, seulement ceux modifiés. Cette approche est similaire à expressionBuilder dans le profil d'accès REST de la balise wcf:getData. Un paramètre est transmis à la balise REST pour déterminer le calcul du serveur et la quantité de données détaillées qui sont interrogées pour la ressource. Il prend en charge deux types de format. Un type de format est le même que le profil d'accès traditionnel et le profil de recherche dans un service Web, une chaîne significative qui indique uniquement les détails de requête. L'autre type de format est un format détaillé, qui identifie tous les champs requis de la ressource.
Une balise REST peut avoir plusieurs balises param. Ces balises sont composées dans la requête REST au serveur REST en tant que paramètre de requête ou corps de requête, qui inclut des paramètres communs tels que langId, currency, pageSize wcf:header.
Une balise REST peut avoir plusieurs balises d'en-tête. Ces balises sont composées dans la requête REST au serveur REST en tant qu'en-tête de requête, qui inclut des paramètres tels que WCToken et WCTrustedToken.
La balise wcf:rest met en cache les appels d'API REST au niveau de la requête à l'aide de la signature d'appel. Pour plus d'informations, voir Stratégies de mise en cache pour les services REST.
| Informations sur la balise | |
|---|---|
| Contenu de l'élément 'Body' | JSP |
Attributs
| Nom | Obligatoire | Date/heure de la requête | Type | Description |
|---|---|---|---|---|
var |
false |
true |
java.lang.String |
Ce paramètre identifie le nom de la variable, qui sera utilisé pour être mis en portée persistante comme la session ou la requête. Lorsque la balise est déclarée comme un modèle, ce paramètre peut être ignoré. |
url |
false |
true |
java.lang.String |
Ce paramètre identifie l'URL réelle du service REST. Ce paramètre prend en charge les adresses absolues ou relatives. Pour les adresses relatives, un développeur doit identifier le chemin d'accès qui commence à partir du nom de la ressource. Le système ajoute automatiquement le nom de l'hôte, le chemin du servlet et le nom du magasin. Pour les adresses relatives, un développeur doit également spécifier le schéma HTTP, qui a la valeur http par défaut. |
schema |
false |
true |
java.lang.String |
Ce paramètre spécifie le schéma lorsque le paramètre URL n'est pas un chemin d'accès absolu. Le système de balise obtient une certaine valeur par défaut depuis la configuration en tant que nom de l'hôte, chemin d'accès de contexte et storeId. Le paramètre de schéma est spécifié ici. |
accessProfile |
false |
true |
java.lang.String |
L'accessProfile est utilisé pour appeler le service Web backend, qui décide de la quantité de données demandées, similaire au paramètre des champs. Le profil d'accès est préconfiguré sur le serveur REST et ne peut pas être modifié. Lorsque ce paramètre est spécifié, l'infrastructure REST utilise l'infrastructure transmise pour remplacer celle par défaut. |
searchProfile |
false |
true |
java.lang.String |
Dans les services REST liés au catalogue, searchProfile est utilisé pour appeler le service Web backend, qui décide de la quantité de données demandées, similaire au paramètre des champs. searchProfile est préconfiguré sur le serveur REST et ne peut pas être modifié. Lorsque ce paramètre est spécifié, l'infrastructure REST utilise l'infrastructure transmise pour remplacer celle par défaut. |
format |
false |
true |
java.lang.String |
Ce paramètre décide du format de la variable de sortie, qui peut être JSON, XML ou brut. La définition de la valeur sur json donne un objet de type JSONObject ou JSONArray en fonction des données renvoyées par l'API REST ; xml donne un objet de type org.w3c.dom.Document ; et raw donne un objet de type Chaîne. La valeur par défaut de ce paramètre est json. |
cached |
false |
true |
java.lang.String |
La mise en cache côté client peut être utilisée avec les fichiers JSP Storefront si le service REST appelé est marqué comme cacheable. (Notez que dans le cas du Magasin Aurora, le client est le serveur d'applications (conteneur servlet) hébergeant les pages JSP qui incluent les balises REST, et ainsi la mise en cache se produira sur le serveur d'applications, et non dans le navigateur qui consomme la sortie des pages JSP.) Afin d'utiliser la mise en cache côté client, définissez la valeur cached sur "true". Les réponses pour les requêtes REST sont basées sur l'URL précédente et les paramètres sont mis en cache à l'intérieur du cache de données appelé RESTTagCache, avec le nom JNDI du cache services/cache/WCRESTTagDistributedMapCache. Cette mise en cache s'applique aux services REST fournis par les serveurs de recherche HCL Commerce et HCL Commerce. |
scope |
false |
false |
java.lang.String |
La portée du service REST. |
headerStrategy |
false |
false |
java.lang.String |
Ce paramètre détermine comment les en-têtes HTTP sont composés dans la balise. Les valeurs admises sont les suivantes :
|
connectTimeout |
false |
false |
java.math.BigInteger |
Temps d'attente, en millisecondes, avant qu'une connexion HTTP au serveur cible ne soit établie. La valeur par défaut est 30000. |
readTimeout |
false |
false |
java.math.BigInteger |
Temps d'attente, en millisecondes, avant qu'une réponse soit obtenue. La valeur par défaut est 30000. |
de performances
wcf:rest contient les éléments suivants :wcf:header, qui ajoute un en-tête HTTP à une requête REST.wcf:var, qui définit la variable au sein d'une requête REST.
Variables
Aucune variable n'est définie pour la balise wcf:rest.
Exemple
Normal usage to get a product
<wcf:rest var="product" url="productview/byId/10001"/>Traitement des incidents
<wcf:rest var="myProductData" url="/store/{storeId}/productview/{partNumber}">
<wcf:var name="storeId" value="12051" encode="true"/>
<wcf:var name="partNumber" value="VESTS-FabricBackVest_SKU" encode="true"/>
</wcf:rest>
${myProductData}
result:
{"responseCode":404}Cette erreur se produit, car url="/store/{storeId}/productview/{partNumber}" est codé côté serveur. Ce codage est contrôlé par l'attribut wcsRestTagSkipMandatorySearchEncoding dans le contexte de la page, qui modifie /store/{storeId}/productview/{prtn} d'entrée en /store/{storeId}/productview/%7Bprtn%7D. Un partNumber incorrect est alors renvoyé.wcsRestTagSkipMandatorySearchEncoding=true. Toutefois, il s'agit d'un paramètre de recherche obligatoire. Une meilleure solution est de laisser JSP résoudre la valeur. Par exemple, l'appel suivant réussira :<c:set var="partNumber" value="${value for the part number}"/>
<wcf:rest var="myProductData" url="/store/{storeId}/productview/${partNumber}">
<wcf:var name="storeId" value="12051" encode="true"/>
</wcf:rest>