python graphql客户端库

gql-next的Python项目详细描述


gql:python图形ql客户端库

Build StatusCoverage Status

简介

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作为客户端-编写.gql.json配置文件。

gql run

运行项目的文件并将graphql查询编译为python类型。

gql watch

在开发过程中有用。监听项目文件夹中的文件更改并持续 在GraphQL查询发生更改时生成它们。 这允许您:

  • 立即验证您所做的查询更改是否有效。
  • 在开发过程中,享受ide在graphql自动生成对象上的自动完成功能 as watch将在您更改查询时自动更新它们。

赞助商

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java getResourceAsStream()返回内容为空的流   java用小数组替换大数组或映射的一部分   java如何获得安卓的运营商功能   在Java中,可以从数组中的值一次分配给多个变量吗?   java Spring透视图没有在eclipse中显示   Java中的通用LinkedList克隆   java确实避开了线程的分析处理。holdsLock()正确吗?   java SocketInputStream。客户端使用jax rs向服务器发送请求时,socketRead0挂起   java从扫描仪读取多个输入   java Siddhi是否无法按多个变量分组?   java字符串将不会绘制   如何在Java中遍历属性文件中的值   对象列表的java JSON字符串   JavaGridLayout不考虑给定的行数和列数   java SSL:解析证书时出错:确定   java检查Hashmap中的键是否在AutoCompleteTextView中键入   java如何从HTML服务器获取JSON对象作为响应   Java对于类型列表<Object>   在AnyLogic中与外部java应用程序一起使用ExperimentRunFast