GraphQL Explorer
Costruisci ed esegui query GraphQL verso qualsiasi endpoint.
Solo endpoint pubblici http(s). Indirizzi interni/privati (localhost, 127.x, 10.x, 192.168.x, 169.254.x, host .internal) vengono rifiutati.
Risposta
Inserisci un endpoint, scrivi la tua query e premi Esegui Query per vedere la risposta qui.
Cos'e GraphQL?
GraphQL e un linguaggio di query per API che consente ai client di richiedere esattamente i dati di cui hanno bisogno, ne' di piu' ne' di meno.
A differenza di REST, un singolo endpoint gestisce tutte le operazioni: query (lettura), mutation (scrittura) e subscription (eventi in tempo reale).
Tipi di operazioni
query - Recupera dati (equivalente GET)
mutation - Modifica dati (equivalente POST/PUT/DELETE)
subscription - Stream di eventi in tempo reale
__schema - Introspect il tipo system dell'API
Suggerimenti
Usa la query di introspection predefinita per scoprire i tipi e le operazioni disponibili sull'endpoint.
Aggiungi un header Authorization: Bearer <token> per gli endpoint protetti.
Le variabili permettono di parametrizzare le query senza concatenare stringhe.
Come utilizzare GraphQL Explorer
1. Inserisci l'endpoint GraphQL
Incolla l'URL completo http:// o https:// dell'endpoint GraphQL da testare. Endpoint interni/privati (localhost, IP di rete locale, .internal/.local) vengono rifiutati per sicurezza.
2. Scrivi la query e le variabili
Usa la query di introspection predefinita per esplorare lo schema, oppure scrivi la tua query/mutation. Nel pannello "Variabili" inserisci un JSON valido se la query le richiede.
3. Configura gli header (opzionale)
Aggiungi header personalizzati come Authorization: Bearer <token> per endpoint protetti. Ogni header puo' essere abilitato o disabilitato singolarmente senza rimuoverlo.
4. Esegui e leggi la risposta
Premi Esegui per inviare la richiesta POST. La risposta JSON appare con syntax highlighting e tempo di esecuzione; gli errori GraphQL (array "errors") sono evidenziati separatamente. Ogni query eseguita resta nella cronologia (ultime 5).
Suggerimenti
- Parti sempre dalla query di introspection per capire quali tipi e campi espone l'endpoint prima di scrivere query complesse.
- Usa la cronologia per confrontare rapidamente i tempi di risposta tra query diverse sullo stesso endpoint.
- In caso di errori GraphQL parziali (data non nullo ma errors valorizzato), controlla il campo "path" di ogni errore per capire quale campo della query ha fallito.
Domande frequenti
Le mie query passano da un server intermedio o vanno direttamente all'endpoint?
Le richieste partono direttamente dal browser verso l'endpoint GraphQL che indichi, senza passare da un proxy server-side: non esiste quindi un rischio SSRF lato server. Il tool applica comunque un controllo client-side che blocca schemi diversi da http(s) e host interni/privati (localhost, IP RFC1918, link-local) prima di inviare la richiesta.
Perche' ricevo un errore CORS o "Impossibile raggiungere il server"?
Se l'endpoint GraphQL non include header CORS che consentano richieste da federicocalo.dev, il browser blocca la risposta per policy di sicurezza. Verifica che il server esponga Access-Control-Allow-Origin appropriato, oppure testa l'endpoint da un ambiente con CORS disabilitato/configurato (es. un client desktop).
Come autentico le richieste verso un endpoint protetto?
Apri il pannello Header e aggiungi una riga con chiave Authorization e valore Bearer <il-tuo-token> (o il formato richiesto dall'API, es. API-Key). L'header viene inviato solo se la riga e' marcata come abilitata.
Come uso le variabili GraphQL invece di concatenare valori nella query?
Scrivi la query con segnaposto tipizzati (es. query($id: ID!) { user(id: $id) { name } }), poi inserisci nel pannello Variabili un oggetto JSON valido (es. {"id": "42"}). Il tool valida che il JSON sia sintatticamente corretto prima di eseguire la richiesta.
La cronologia delle query viene salvata da qualche parte?
La cronologia (ultime 5 esecuzioni con endpoint, query, variabili, esito e durata) vive solo in memoria nella sessione del browser: non viene inviata a nessun server e si perde ricaricando la pagina. Usa "Ripristina" su una voce della cronologia per riportarla nel form.