Saltar a contenido

GraphQL

De forma similar al ejemplo utilizando JSON, pero importanado la clase GraphApi, tenemos lo siguiente:

Recuerda

Tenga en cuenta que este módulo no pretende convertirse en un cliente de GraphQL.

from app.common.http.graphql import GraphApi
from typing import Optional, Any
...

BASE_URL = "https://graphqlzero.almansi.me/api"

api = GraphApi()

query="""{
      user(id: 1) {
        id
        name
      }
    }
"""

result: Optional[dict[str, Any]] = api.send(BASE_URL, query)

Para tener en cuenta

El método send de GraphApi, internamente envía una solicitud POST, con el parámetro json y un diccionario con la consulta enviada.

1
2
3
4
5
6
7
8
resp = self.req(
    method="POST",
    url=uri,
    json={"query": query},
    headers=req_header,
    timeout=self.time_out,
    retries=Retry(self.retries),
)

Lectura recomendada