Magento headless GraphQL: introduzione

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

  1. GraphQL: una sola query restituisce esattamente i campi richiesti.
  2. REST: più' chiamate per ottenere lo stesso risultato (catalogo + prezzo + stock).
  3. GraphQL ha schema fortemente tipizzato auto-documentato.
  4. 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.

Hai trovato utile quest'articolo?