Ariadne是一个用于实现GraphQL服务器的Python库。
项目描述
Ariadne
Ariadne是一个用于实现GraphQL服务器的Python库。
- 模式优先:Ariadne 允许 Python 开发者使用模式优先的方法来实现 API。这是 GraphQL 社区中广泛采用的方法,得到了众多前端和后端开发工具、示例和学习资源的支持。Ariadne 让您和其他团队成员能够立即使用这些功能。
- 简单:Ariadne 提供了一个小巧、一致且易于记忆的 API,让开发者能够专注于业务问题,而不是样板代码。
- 开放:Ariadne 被设计成模块化和开放,以便于定制。如果您缺少或对某些内容不满意,可以扩展或轻松替换为您的自定义内容。
文档可在此处找到。
特性
- 简单、易于学习和记忆的 API。
- 与 GraphQL.js 版本 15.5.1 兼容。
- 查询、变异和输入类型。
- 异步解析器和查询执行。
- 订阅。
- 自定义标量、枚举和模式指令。
- 联合和接口。
- 文件上传。
- 使用 SDL 字符串定义模式。
- 从
.graphql
、.gql
和.graphqls
文件中加载模式。 - 用于在现有网站上实现 GraphQL 的 WSGI 中间件。
- Apollo Tracing 和 OpenTracing 扩展,用于 API 监控。
- 可选的自动解析器映射,在
camelCase
和snake_case
之间,并提供了一个@convert_kwargs_to_snake_case
函数装饰器,用于将camelCase
kwargs 转换为snake_case
。 - 内置简单的同步开发服务器,用于快速 GraphQL 实验,并提供 GraphQL Playground。
- 支持 Apollo GraphQL Visual Studio Code 扩展。
- 通过
gql()
辅助函数进行 GraphQL 语法验证。如果已安装 Apollo GraphQL 扩展,还提供颜色化。 - 无全局状态或对象注册表,支持在同一个代码库中支持多个 GraphQL API,并具有显式类型重用。
- 支持
Apollo Federation
。
安装
Ariadne 可以使用 pip 进行安装
pip install ariadne
Ariadne 需要 Python 3.7 或更高版本。
快速入门
以下示例创建了一个 API,定义了 Person
类型和一个查询字段 people
,返回两个人员的列表。它还启动了一个本地开发服务器,并通过 GraphQL Playground 在 http://127.0.0.1:8000
地址上可用。
首先安装 uvicorn,这是一个 ASGI 服务器,我们将用它来提供 API
pip install uvicorn
然后为您示例应用程序创建一个 example.py
文件
from ariadne import ObjectType, QueryType, gql, make_executable_schema
from ariadne.asgi import GraphQL
# Define types using Schema Definition Language (https://graphql.net.cn/learn/schema/)
# Wrapping string in gql function provides validation and better error traceback
type_defs = gql("""
type Query {
people: [Person!]!
}
type Person {
firstName: String
lastName: String
age: Int
fullName: String
}
""")
# Map resolver functions to Query fields using QueryType
query = QueryType()
# Resolvers are simple python functions
@query.field("people")
def resolve_people(*_):
return [
{"firstName": "John", "lastName": "Doe", "age": 21},
{"firstName": "Bob", "lastName": "Boberson", "age": 24},
]
# Map resolver functions to custom type fields using ObjectType
person = ObjectType("Person")
@person.field("fullName")
def resolve_person_fullname(person, *_):
return "%s %s" % (person["firstName"], person["lastName"])
# Create executable GraphQL schema
schema = make_executable_schema(type_defs, query, person)
# Create an ASGI app using the schema, running in debug mode
app = GraphQL(schema, debug=True)
最后运行服务器
uvicorn example:app
有关更多指南和示例,请参阅文档。
贡献
我们欢迎对 Ariadne 的贡献!如果您发现了错误或问题,请随时使用 GitHub 问题。如果您有任何问题或反馈,请随时在 GitHub 讨论中联系我们。
有关指导和说明,请参阅 CONTRIBUTING.md。
网站和文档有自己的 GitHub 仓库:mirumee/ariadne-website
同时,请确保您关注 @AriadneGraphQL 在 Twitter 上的最新更新、新闻和随想!
由 Mirumee Software 用 ❤️ 制作 hello@mirumee.com
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
ariadne-0.23.0.tar.gz (75.1 kB 查看哈希值)
构建分发
ariadne-0.23.0-py2.py3-none-any.whl (108.3 kB 查看哈希值)
关闭
ariadne-0.23.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 84c46ae27fad98e1a6553c8930e6fc8e755f8dcd54a959d33caf04ecfe026a93 |
|
MD5 | 901b4cad9b89d6931e796d11b7f9c324 |
|
BLAKE2b-256 | 4f74dc0232bc311a705c3cc642007bbbea817832c7fedb9655c870240804ad05 |
关闭
ariadne-0.23.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 594206e4fc20fa05d6872f0ccd6e3aafe0575b9da36945211762445126b28bcb |
|
MD5 | f3ce842b7090ed18694156ddc299b195 |
|
BLAKE2b-256 | 7614e2e13d6d2937f8fca9d220234f775e56119bce3cc3d6a807324faf5c80df |