Strawberry GraphQL
基于数据类的Python GraphQL库
安装(快速开始)
快速开始方法提供了一个服务器和CLI,可以快速上手。通过以下命令安装:
pip install "strawberry-graphql[debug-server]"
入门
创建一个名为app.py
的文件,包含以下代码:
import strawberry
@strawberry.type
class User:
name: str
age: int
@strawberry.type
class Query:
@strawberry.field
def user(self) -> User:
return User(name="Patrick", age=100)
schema = strawberry.Schema(query=Query)
这将创建一个GraphQL架构,定义了一个User
类型和一个返回硬编码用户的单一查询字段user
。
要运行调试服务器,执行以下命令:
strawberry server app
点击以下链接打开调试服务器: http://0.0.0.0:8000/graphql
这将打开GraphiQL,您可以在这里测试API。
类型检查
Strawberry带有一个mypy插件,可以对GraphQL架构进行静态类型检查。要启用它,请在mypy.ini
配置文件中添加以下行:
[mypy]
plugins = strawberry.ext.mypy_plugin
Django集成
提供了一个Django视图,用于在应用程序中添加GraphQL端点。
- 将应用程序添加到
INSTALLED_APPS
中。
INSTALLED_APPS = [
..., # 您的其他应用
"strawberry.django",
]
- 将视图添加到
urls.py
文件中。
from strawberry.django.views import GraphQLView
from .schema import schema
urlpatterns = [
...,
path("graphql", GraphQLView.as_view(schema=schema)),
]
WebSockets
要支持通过WebSockets的GraphQL订阅,您需要提供一个支持WebSocket的服务器。可以通过以下命令使调试服务器支持WebSockets:
pip install 'strawberry-graphql[debug-server]'
pip install 'uvicorn[standard]'
示例
贡献
我们使用poetry来管理依赖项,按照以下步骤开始:
git clone https://github.com/strawberry-graphql/strawberry
cd strawberry
poetry install --with integrations
poetry run pytest
更多详细信息,请查看贡献页面
预提交
我们有一个pre-commit配置,要添加钩子,请运行以下命令:
pre-commit install
链接
- 项目主页:https://strawberry.rocks
- 代码库:https://github.com/strawberry-graphql/strawberry
- 问题追踪:https://github.com/strawberry-graphql/strawberry/issues
- 如遇敏感问题(如安全漏洞),请直接联系patrick.arminio@gmail.com,而不是使用问题追踪器。我们感谢您为提高本项目的安全性和隐私性所做的努力!
许可
本项目中的代码采用MIT许可证。更多信息请参见LICENSE。