Introduzione
Magento 2 supporta nativamente GraphQL fin dalla versione 2.3, permettendo di costruire frontend headless o app mobile interrogando il backend in modo flessibile. E' la base per qualsiasi architettura PWA o multi-canale.
Cos'e' un'architettura headless
In un'architettura headless il backend (Magento) gestisce dati, business logic e admin, mentre il frontend (React, Vue, Flutter, app native) consuma API per renderizzare l'esperienza utente. Si possono avere più' frontend collegati allo stesso backend.
GraphQL vs REST
- GraphQL: una sola query restituisce esattamente i campi richiesti.
- REST: più' chiamate per ottenere lo stesso risultato (catalogo + prezzo + stock).
- GraphQL ha schema fortemente tipizzato auto-documentato.
- GraphQL supporta query batch e subscription.
Endpoint GraphQL Magento
Per default l'endpoint e' https://store.example.com/graphql. Si testa con strumenti come GraphiQL, Insomnia o Postman.
Esempio query
{ products(filter: { sku: { eq: "24-MB01" } }) { items { name sku price_range { minimum_price { regular_price { value currency } } } } } }
Restituisce solo i campi richiesti, senza payload superflui.
Autenticazione
Per operazioni autenticate (cart utente, ordini, account) si invia un Bearer token JWT nell'header Authorization. Il token si ottiene con la mutation generateCustomerToken (email + password).
Mutations
Oltre alle query in lettura, GraphQL supporta mutations per modificare dati: createEmptyCart, addProductsToCart, setShippingAddressesOnCart, placeOrder. Sostituiscono le API REST Magento.
Performance
Le query GraphQL passano dalla Full Page Cache se il client invia gli header corretti (Store, Currency, X-Magento-Cache-Id). Cache key generato in base alla query: query identiche vengono servite da cache.
Estendere lo schema
I moduli custom possono dichiarare etc/schema.graphqls per aggiungere tipi, query e mutations propri. Il resolver PHP viene mappato in di.xml e implementa l'interfaccia ResolverInterface.
Sicurezza
Configurare query complexity limit e depth limit per prevenire query maliziosamente costose. In produzione disabilitare introspection dello schema per non esporre dettagli interni.
Hai bisogno di aiuto?
Se vuoi un Magento ottimizzato dal team di G Tech Group, scrivici tramite il modulo di contatto.