python graphql客户端库
gql-next的Python项目详细描述
gql:python图形ql客户端库
简介
gql是一个graphql客户端python库,旨在帮助python应用程序生成graphql 在享受graphql带来的优势的同时调用api。
- 强类型响应对象(在生成时动态创建以匹配查询)
- query validation根据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!fromtypingimportAny,Callable,Mapping,ListfromenumimportEnumfromdataclassesimportdataclassfromdataclasses_jsonimportdataclass_jsonfromgql.clientsimportClient,AsyncIOClient@dataclass_json@dataclassclassGetFilm:@dataclass_json@dataclassclassGetFilmData:@dataclass_json@dataclassclassFilm:title:strdirector:strfilm:Film=Nonedata:GetFilmData=Noneerrors:Any=None@classmethoddefexecute(cls,id:str,on_before_callback:Callable[[Mapping[str,str],Mapping[str,str]],None]=None)->GetFilm:...@classmethodasyncdefexecute_async(cls,id:str,on_before_callback:Callable[[Mapping[str,str],Mapping[str,str]],None]=None)->GetFilm:...
允许您进行GraphQL查询:
from.get_filmimportGetFilmresult=GetFilm.execute('meaning_of_life')film=result.data.film
重要提示:
- graphql查询中定义的操作必须命名为,这样我们就可以命名相关的python类,然后您可以在代码中导入该类
工作原理
客户机
gql init
gql init
初始化项目以使用GQL作为客户端-编写.gql.json配置文件。
gql run
运行项目的文件并将graphql查询编译为python类型。
gql watch
在开发过程中有用。监听项目文件夹中的文件更改并持续 在GraphQL查询发生更改时生成它们。 这允许您:
- 立即验证您所做的查询更改是否有效。
- 在开发过程中,享受ide在graphql自动生成对象上的自动完成功能
as
watch
将在您更改查询时自动更新它们。