---
name: azion-consulte-os-metadados-do-schema-graphql
description: >-
  Liste os datasets que um endpoint da GraphQL API atende, os campos de cada dataset e os seus tipos com uma query de introspecção.
---

# Consulte os metadados do schema GraphQL

Você pode perguntar à [GraphQL API](/pt-br/documentacao/devtools/graphql/visao-geral/) quais datasets um endpoint atende, quais campos cada dataset retorna e o tipo de cada campo. A resposta vem de uma query de introspecção, que lê o schema em vez dos seus dados. Use-a para conferir o nome de um dataset ou de um campo antes de escrever uma query.

---

## Pré-requisitos

- Um personal token. Para criar um, consulte [Como criar um personal token](/pt-br/documentacao/guias/plataforma/conta-e-billing/personal-tokens/).

---

## Liste os datasets e os seus campos

Cada endpoint descreve apenas os próprios datasets. Os passos abaixo consultam `https://api.azion.com/v4/metrics/graphql`, que atende os datasets de métricas. Para listar os datasets de outro endpoint, como `https://api.azion.com/v4/events/graphql`, envie as mesmas queries para ele.

Para ler o schema do endpoint de métricas:

1. **Envie a query de introspecção**

   Envie esta query em uma requisição `POST` para `https://api.azion.com/v4/metrics/graphql`, com o header `Authorization: Token [TOKEN VALUE]`. Para enviar uma query, consulte [Primeiros passos com a GraphQL API](/pt-br/documentacao/devtools/graphql/primeiros-passos/) ou [Execute queries GraphQL no Postman](/pt-br/documentacao/guias/plataforma/observabilidade/consultar-graphql-postman/).

   ```graphql
   query introspectionQuery {
    __type(name: "Query") {
      name
      description
      fields {
          name
          description
          type {
              ofType {
                  fields {
                      name
                      type {
                          name
                         }
                     }
                 }
             }
         }
     }
   }
   ```

2. **Confira os datasets na resposta**

   A API responde com HTTP `200` e uma entrada por dataset em `fields`. A resposta abaixo está cortada depois do terceiro dataset e depois do terceiro campo de cada dataset:

   ```json
   {
     "data": {
       "__type": {
         "name": "Query",
         "description": null,
         "fields": [
           {
             "name": "realTimeEventsQueriesMetrics",
             "description": "Real-Time Events Metrics dataset query by Minute, Hour and Day with aggregate options.",
             "type": {
               "ofType": {
                 "fields": [
                   {
                     "name": "ts",
                     "type": {
                       "name": "CustomDateTime"
                     }
                   },
                   {
                     "name": "sourceLocPop",
                     "type": {
                       "name": "String"
                     }
                   },
                   {
                     "name": "configurationId",
                     "type": {
                       "name": "Int"
                     }
                   },
                   …
                 ]
               }
             }
           },
           {
             "name": "aiMetrics",
             "description": "Query AI Metrics with aggregate options.",
             "type": {
               "ofType": {
                 "fields": [
                   {
                     "name": "ts",
                     "type": {
                       "name": "CustomDateTime"
                     }
                   },
                   {
                     "name": "sourceLocPop",
                     "type": {
                       "name": "String"
                     }
                   },
                   {
                     "name": "configurationId",
                     "type": {
                       "name": "Int"
                     }
                   },
                   …
                 ]
               }
             }
           },
           {
             "name": "objectStorageMetrics",
             "description": "Object Storage Metrics dataset query by Day with aggregate options.",
             "type": {
               "ofType": {
                 "fields": [
                   {
                     "name": "ts",
                     "type": {
                       "name": "CustomDateTime"
                     }
                   },
                   {
                     "name": "location",
                     "type": {
                       "name": "String"
                     }
                   },
                   {
                     "name": "bucketId",
                     "type": {
                       "name": "String"
                     }
                   },
                   …
                 ]
               }
             }
           },
           …
         ]
       }
     }
   }
   ```

3. **Liste os datasets descontinuados**

   A primeira query deixa de fora os datasets descontinuados, como `httpMetrics`, que `workloadMetrics` substitui. Para listar todos os datasets com o status de descontinuação de cada um, envie esta query para o mesmo endpoint:

   ```graphql
   query {
     __type(name: "Query") {
       fields(includeDeprecated: true) { name isDeprecated deprecationReason }
     }
   }
   ```

   A API responde com HTTP `200`. A resposta abaixo está cortada depois do terceiro dataset:

   ```json
   {
     "data": {
       "__type": {
         "fields": [
           {
             "name": "realTimeEventsQueriesMetrics",
             "isDeprecated": false,
             "deprecationReason": null
           },
           {
             "name": "aiMetrics",
             "isDeprecated": false,
             "deprecationReason": null
           },
           {
             "name": "edgeAIMetrics",
             "isDeprecated": true,
             "deprecationReason": "Use aiMetrics instead."
           },
           …
         ]
       }
     }
   }
   ```

Você tem o nome, a descrição e a lista de campos de cada dataset que o endpoint atende, e o substituto de cada dataset descontinuado.

---

## Leia a resposta

Cada chave das duas respostas descreve uma parte do schema:

| Chave                                | O que contém                                                                                                                                  |
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`                               | `Query`, o tipo raiz que contém todos os datasets do endpoint.                                                                                |
| `description`                        | A descrição do tipo raiz. O valor é `null`.                                                                                                   |
| `fields[].name`                      | O nome de um dataset, o nome que você coloca em uma query.                                                                                    |
| `fields[].description`               | O que o dataset contém. A maioria das descrições também indica os buckets de tempo em que o dataset agrupa os dados, como minuto, hora e dia. |
| `fields[].type.ofType.fields`        | Os campos que o dataset retorna, cada um com o seu `name` e o nome do seu tipo.                                                               |
| `type.name` de um campo              | O tipo do valor do campo, como `CustomDateTime` para `ts`, `String` ou `Int`.                                                                 |
| `isDeprecated` e `deprecationReason` | Se um dataset está descontinuado e, quando está, o dataset a usar no lugar dele.                                                              |

---

## Próximos passos

- [Datasets e argumentos de query](/pt-br/documentacao/devtools/graphql/recursos.md): Veja todos os datasets por endpoint e os argumentos que cada query aceita.
- [Campos do Real-Time Metrics](/pt-br/documentacao/devtools/graphql/campos-gql-real-time-metrics.md): Leia o que cada campo dos datasets de métricas retorna.
- [Campos do Real-Time Events](/pt-br/documentacao/devtools/graphql/campos-gql-real-time-events.md): Leia o que cada campo dos datasets de eventos retorna.
- [Queries](/pt-br/documentacao/devtools/graphql/queries.md): Escreva queries brutas, agregadas, financeiras e de uso com os nomes que você encontrou.
