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 Hibernate@ManyToMany mapping只在一个方向上在数据库中添加记录   java将文件上载到tomcat服务器外部的文件夹   java将摄像头捕获的图像上传到服务器   java如何创建Rest API并为进程添加时间延迟?   springmodulesvalidation0中缺少java注释包。8a源文件   如何在java中打印SOAP头   Spring security中的java自定义消息,包括UserDetailsService实现和异常   java如何使用Htmlunit中的表单数据登录站点   web如何在WildFly上自动运行java文件   java如何从已经使用另一个方法传递的参数的方法中获取返回值?   java我在JFrame上有一个索引越界。setContentPane   java中的循环序列/系列打印   java maven 3 webapp没有要运行的测试吗?   java CORS不允许POST请求   java再次在派生类中的Jackson中添加字段,该字段在基类中被忽略   爪哇坑测试显示仆从由于超时而异常退出   java寻找第10001个素数   java jboss是否更改web应用程序上下文根?