Mutations
Créé pour :
- Débutant
- Intermédiaire
- Développeur
Il s’agit de la troisième partie de la série pour GraphQL et Adobe Commerce. Les mutations permettent d’enregistrer, de mettre à jour et de renvoyer des valeurs à l’aide de GraphQL.
Vidéos et tutoriels connexes sur GraphQL dans cette série
Exemple de mutation
Toute spécification d’API complète doit offrir la possibilité non seulement d’interroger des données, mais également de les créer et de les mettre à jour.
REST fait la distinction entre les requêtes qui modifient les données et celles qui ne sont pas du type de requête ou "verb" (GET ou POST ou PUT).
Lors de l’utilisation de GraphQL, les requêtes de modification des données sont distinguées par le mot-clé mutation
qui correspond à un
type racine dans le schéma défini sur le serveur.
Regardez cet exemple de mutation pour l’ajout d’un produit au panier d’un utilisateur. (Cela nécessite un identifiant de panier généré.
pour la session du client connecté ou en utilisant la mutation createEmptyCart
.)
mutation doAddToCart(
$cartId: String!,
$cartItems: [CartItemInput!]!
) {
addProductsToCart(
cartId: $cartId
cartItems: $cartItems
) {
cart {
total_quantity
prices {
grand_total {
value
}
}
}
}
}
Vous pouvez imaginer la mutation ci-dessus envoyée dans une requête avec le dictionnaire de variables suivant :
{
"cartId": "{cart-id}",
"cartItems": [
{
"quantity": 1,
"sku": "VT01-RN-XS"
}
]
}
Et enfin, vous pourriez recevoir une réponse comme celle-ci :
{
"data": {
"addProductsToCart": {
"cart": {
"total_quantity": 1,
"prices": {
"grand_total": {
"value": 35.2
}
}
}
}
}
}
La principale chose à noter à propos de l’exemple ci-dessus est que, en plus de l’utilisation du mot-clé mutation
au lieu de query
,
la syntaxe est identique à celle d’une requête. Comme les requêtes, la mutation inclut :
- Un nom d’opération arbitraire (
doAddToCart
) - Une liste de variables (par exemple,
$cartId
) - Un champ initial (
addProductsToCart
) avec des arguments (par exemple,cartId
, défini sur la valeur de$cartId
) entre parenthèses - Sous-sélection de champs entre accolades
La sous-sélection de champs vous permet de définir de manière flexible les champs que vous souhaitez renvoyer (à partir du type affecté comme
valeur renvoyée de addProductsToCart
- AddProductsToCartOutput
) une fois la mutation terminée.
Comme expliqué précédemment, les champs définis dans un schéma GraphQL démarrent sur un type racine pour les requêtes (généralement appelé Query
). De même,
il existe un autre type racine pour les mutations (généralement appelé Mutation
). addProductsToCart
est un champ
sur ce type racine.
Voici quelques autres remarques concernant l’exemple ci-dessus :
- Le suffixe
!
de caractèresString
etCartItemInput
indique que la variable est requise. - Les crochets (
[]
) autour du typeCartItemInput
spécifié pour$cartItems
indiquent une liste.
de ce type plutôt qu’une seule valeur.
Ressources GraphQL utiles
Commerce
- Tutoriels Commerce
- Adobe Commerce Cloud
- Dépannage
- Hébergement conforme à la norme HIPAA
- Détecter l’adresse IP
- Marketing
- Modèle de diffusion global
- Rôles d’administrateur
- Flux marketing
- Options de storefront
- Partage de données
- Plusieurs sites web
- Données et promotions des leads d’expérience
- AEM Assets
- Migration depuis une solution auto-hébergée
- Limiter l’accès à l’aide de Fast
- Intégration technique et remise du matériel
- Bonnes pratiques
- Prise en main
- Adobe Commerce Optimizer
- Architecture de référence globale
- Aide et support
- Edge Delivery Services
- Prise en main
- Modifier le flux transactionnel
- Utilisation des attributs de produit pour les articles du panier
- Mettre à jour la synthèse des commandes lors du passage en caisse
- Ajout de BOPIS au passage en caisse
- Personnaliser le passage en caisse
- Personnalisation de la disposition d’une adresse
- Expérience client
- Prise en main
- Webinaires et événements
- L’avenir de Commerce
- Série d’activation
- Conversations Commerce
- Qu’est-ce que le succès des experts ?
- Modules complémentaires de prise en charge de Commerce
- Qu’est-ce que la réussite ultime ?
- Préparation technique des accélérateurs de succès
- Adoption et activation des accélérateurs de succès
- Préparation de l’organisation Accélérateurs de succès
- Responsabilité partagée
- GraphQL et REST
- Adobe Developer App Builder
- Présentation d’App Builder
- Framework d’extensibilité pour App Builder
- Démonstration fonctionnelle d’App Builder
- Présentation technique d’App Builder
- Créer votre première application App Builder
- Vue d’ensemble
- Générer et configurer le fichier .env
- Description et utilisation du fichier app.config.yaml
- En savoir plus sur le dossier Actions
- En savoir plus sur le dossier test
- Découvrez l’objectif du dossier web-src
- Test local
- Test à l’aide de l’URL d’App Builder
- Conclusion
- Exemple de code source de module
- Événements d’E/S pour Adobe Commerce
- Maillage API
- Kit de démarrage du maillage API utilisant GitHub Codesespaces
- Workflows du kit de démarrage du maillage API
- Prise en main du maillage API
- Installation de l’E/S d’Adobe et du plug-in de maillage
- Utilisation des projets et des espaces de travail
- Créer un maillage API GraphQL à source unique
- Créer plusieurs maillages d’API GraphQL sources
- Administration de la boutique
- Gérer les rôles utilisateur et les autorisations
- Authentification À Deux Facteurs
- Gérer les règles de devise et de taxe
- Ajout de sites web, de magasins et d’affichages de magasin
- Modification de l’URL d’une boutique
- Réinitialiser l’URI d’administration
- Modes d’expédition et de livraison
- Grilles et filtres d’administration
- interface de ligne de commande Commerce
- Services Adobe Commerce
- Gestion des clients
- Gestion des catalogues
- Créer une catégorie
- Gestion des produits dans une catégorie
- Inventory management
- Créer des attributs de produit
- Utilisation des attributs de produit avec PWA Studio
- Gestion des métadonnées d’optimisation du moteur de recherche
- Gestion des réécritures d’URL pour l’optimisation du moteur de recherche
- Visionneuse AR
- Importation et mise à jour de catalogues
- Gestion de contenu
- Outils marketing
- Commandes et exécution
- B2B pour Adobe Commerce
- Outils et services externes
- Commerce Intelligence
- Mises à niveau de Commerce
- Développement back-end
- Recommandations relatives à la modification des tables de base de données
- Création d’un module
- Ajout d’un attribut de produit
- Exemple d’injection de dépendance
- Réplication lente du cluster Galera
- Cache de requête MySQL
- Résumé de requête PT
- Connexion et téléchargement de la base de données Adobe Commerce
- Développement front-end natif de Luma
- Architecture découplée