Python GraphQL客户端库
项目描述
GQL: Python GraphQL客户端库
简介
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 查看散列)
关闭
gql-next-0.1.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7c27ad4ed06b87950991c392387bbd4525b6a266c23731002c892f8fb6c8c383 |
|
MD5 | 655bf9814e9e8f9fd3a860fe5addc352 |
|
BLAKE2b-256 | 36ec5413b0cf71059f5f066cfd1a664fe85cd3283965f6c1eb88e5e287e83d19 |
关闭
gql_next-0.1.1-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 189f2ac00b206753b5079003f0c27377ba5a0ab6737438364a70a044c806b6a2 |
|
MD5 | e0f119c9903b8cc60b12467e4a52b53a |
|
BLAKE2b-256 | 36cfe0d49f16f069d55991ef76620762a28abf09b00b653df06feb5a67b00054 |