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 RestTemplate到elasticsearch 6.7.0搜索>错误请求   java如何在OpenGL中对半透明三角形排序?   java如何将Pentaho6.0连接到HadoopHive   java更改图像视图大小   SQL查询在TOAD中运行良好,但在java代码中则不行   java需要根据事件发送HTTP请求   java HTMLUnit在javascript异常上挂起/无限循环   java阵列访问如何影响性能?   使用回滚时不引发异常的java事务测试方法   java如何在最近屏幕后返回到上一个活动   Java泛型函数返回声明   java从二进制文件读取   使用java泛型扩展接口还是糟糕的设计?   java是否将日历设置为特定日期?   java如何在鼠标悬停在一个矩形上时为其指定颜色?