跳转到主要内容

Python GraphQL客户端库

项目描述

GQL: Python GraphQL客户端库

Build Status Coverage Status

简介

GQL是一个旨在帮助Python应用程序在享受GraphQL优势的同时进行GraphQL API调用的GraphQL客户端Python库。

  • 强类型响应对象(在构建时动态创建以匹配您的查询)
  • 查询验证,该验证检查您的代码的查询是否与GraphQL服务器的模式相符。

安装

简单从PyPi安装

pip install gql-next

然后转到您的项目文件夹并运行gql init

快速入门

gql通过解析查询文件(默认为**/*.graphql)到其自己的Python模块工作,该模块中的名为文件中定义的操作的类允许您执行该查询并获得类型化响应。

例如,给定以下文件get_film.graphql

query GetFilm($id: ID!) {
  film(id: $id) {
    title
    director
  }
}

将创建一个get_film.py,定义一个GetFilm

# AUTOGENERATED file. Do not Change!
from typing import Any, Callable, Mapping, List
from enum import Enum
from dataclasses import dataclass
from dataclasses_json import dataclass_json
from gql.clients import Client, AsyncIOClient


@dataclass_json
@dataclass
class GetFilm:
    @dataclass_json
    @dataclass
    class GetFilmData:
        @dataclass_json
        @dataclass
        class Film:
            title: str
            director: str
        film: Film = None

    data: GetFilmData = None
    errors: Any = None

    @classmethod
    def execute(cls, id: str, on_before_callback: Callable[[Mapping[str, str], Mapping[str, str]], None] = None) -> GetFilm:
        ...

    @classmethod
    async def execute_async(cls, id: str, on_before_callback: Callable[[Mapping[str, str], Mapping[str, str]], None] = None) -> GetFilm:
        ...

允许您进行GraphQL查询

from .get_film import GetFilm

result = GetFilm.execute('meaning_of_life')
film = result.data.film

重要说明

  • 在graphql查询中定义的操作必须命名,这样我们就可以命名相关的Python类,然后您可以在代码中导入该类

工作原理

gql客户端

gql init

初始化项目以使用GQL作为客户端 - 创建一个 .gql.json 配置文件。

gql run

遍历项目文件,将GraphQL查询编译成Python类型。

gql watch

在开发期间非常有用。监听项目文件夹中的文件更改,并在它们更改时持续构建GraphQL查询。这允许你

  • 立即验证你做出的查询更改是否有效。
  • 在开发时享受IDE的自动补全功能,在GraphQL自动生成对象上,因为 watch 将在查询更改时自动更新它们。

赞助商

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

gql-next-0.1.1.tar.gz (10.2 kB 查看散列)

上传时间

构建分布

gql_next-0.1.1-py3-none-any.whl (28.4 kB 查看散列)

上传时间 Python 3

由以下组织支持