Python的GraphQL客户端
项目描述
GQL
这是一个适用于Python 3.7+的GraphQL客户端。与graphene
、graphql-core
、graphql-js
以及任何其他符合规范的GraphQL实现兼容。
GQL架构灵感来源于React-Relay
和Apollo-Client
。
文档
关于GQL的完整文档可以在gql.readthedocs.io找到。
特性
- 使用不同的协议执行GraphQL查询
- http
- websockets
- apollo或graphql-ws协议
- 凤凰通道
- AWS AppSync 实时协议(实验性)
- 可以使用本地提供的或通过 introspection 查询从后端获取的 GraphQL 模式在本地验证查询
- 支持 GraphQL 查询、变更和订阅
- 支持同步或异步使用,允许并发请求
- 支持文件上传
- 支持自定义标量/枚举
- gql-cli 脚本用于在命令行中执行 GraphQL 查询或下载模式
- DSL 模块用于动态组合 GraphQL 查询
安装
您可以使用 pip 安装 GQL 以及所有可选依赖项
# Quotes may be required on certain shells such as zsh.
pip install "gql[all]"
注意:有关使用更少额外依赖项安装 GQL 的说明,请参阅文档,这取决于您想要使用的传输方式或替代安装方法。
使用方法
基本用法
from gql import gql, Client
from gql.transport.aiohttp import AIOHTTPTransport
# Select your transport with a defined url endpoint
transport = AIOHTTPTransport(url="https://countries.trevorblades.com/")
# Create a GraphQL client using the defined transport
client = Client(transport=transport, fetch_schema_from_transport=True)
# Provide a GraphQL query
query = gql(
"""
query getContinents {
continents {
code
name
}
}
"""
)
# Execute the query on the transport
result = client.execute(query)
print(result)
执行上述代码应输出以下结果
$ python basic_example.py
{'continents': [{'code': 'AF', 'name': 'Africa'}, {'code': 'AN', 'name': 'Antarctica'}, {'code': 'AS', 'name': 'Asia'}, {'code': 'EU', 'name': 'Europe'}, {'code': 'NA', 'name': 'North America'}, {'code': 'OC', 'name': 'Oceania'}, {'code': 'SA', 'name': 'South America'}]}
警告:请注意,如果您正在运行 asyncio 事件循环,则此基本示例将无法工作。在某些 Python 环境中(例如使用 IPython 的 Jupyter),会为您创建 asyncio 事件循环。在这种情况下,您应使用异步使用示例。
贡献
许可证
项目详情
下载文件
下载适用于您平台文件的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
gql-3.5.0.tar.gz (179.9 kB 查看散列值)
构建分布
gql-3.5.0-py2.py3-none-any.whl (74.0 kB 查看散列值)
关闭
gql-3.5.0.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | ccb9c5db543682b28f577069950488218ed65d4ac70bb03b6929aaadaf636de9 |
|
MD5 | 5bc49c18e3f8129d5c81356380c3549c |
|
BLAKE2b-256 | 3d85feda24b33adcc6c8463a62a8e2ca2cc3425dc6d687388ff728ceae231204 |
关闭
gql-3.5.0-py2.py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 70dda5694a5b194a8441f077aa5fb70cc94e4ec08016117523f013680901ecb7 |
|
MD5 | 1a56b1e7697fb9f24b4630f7540c973e |
|
BLAKE2b-256 | 74fb01a200e1c31b79690427c8e983014e4220d2652b4372a46fe4598e1d7a8e |