Introspection
En GraphQL, la introspección es una capacidad que permite consultar el esquema de la API para obtener información sobre los tipos y las operaciones disponibles. Es especialmente útil para herramientas como clientes GraphQL y generadores de documentación, ya que permite descubrir qué datos están disponibles en la API sin necesidad de documentación externa.
Aquí tienes un ejemplo de consulta de introspección básica en GraphQL:
{
__schema {
types {
name
kind
fields {
name
type {
name
kind
}
}
}
}
}
Explicación
__schema: Este es el campo principal que devuelve información sobre el esquema completo.types: Devuelve todos los tipos disponibles en el esquema, comoQuery,Mutation, y cualquier otro tipo personalizado.name: Es el nombre de cada tipo.kind: Indica el tipo de entidad en el esquema, comoOBJECT,SCALAR,INTERFACE, etc.fields: Lista los campos disponibles en cada tipo. Cada campo tiene:name: El nombre del campo.type: El tipo de dato del campo.
Ejemplo de respuesta
El resultado de esta consulta puede verse algo así:
{
"data": {
"__schema": {
"types": [
{
"name": "Query",
"kind": "OBJECT",
"fields": [
{
"name": "user",
"type": {
"name": "User",
"kind": "OBJECT"
}
},
{
"name": "posts",
"type": {
"name": "Post",
"kind": "OBJECT"
}
}
]
},
{
"name": "User",
"kind": "OBJECT",
"fields": [
{
"name": "id",
"type": {
"name": "ID",
"kind": "SCALAR"
}
},
{
"name": "name",
"type": {
"name": "String",
"kind": "SCALAR"
}
}
]
}
]
}
}
}