- FastAPI教程
- FastAPI - 主页
- FastAPI - 简介
- FastAPI - 你好世界
- FastAPI-开放API
- FastAPI - Uvicorn
- FastAPI - 类型提示
- FastAPI - IDE 支持
- FastAPI - 休息架构
- FastAPI - 路径参数
- FastAPI - 查询参数
- FastAPI - 参数验证
- FastAPI - Pydantic
- FastAPI - 请求正文
- FastAPI - 模板
- FastAPI - 静态文件
- FastAPI - HTML 表单模板
- FastAPI - 访问表单数据
- FastAPI - 上传文件
- FastAPI - Cookie 参数
- FastAPI - 标头参数
- FastAPI - 响应模型
- FastAPI - 嵌套模型
- FastAPI - 依赖关系
- FastAPI - CORS
- FastAPI - Crud 操作
- FastAPI - SQL 数据库
- FastAPI - 使用 MongoDB
- FastAPI - 使用 GraphQL
- FastAPI - Websocket
- FastAPI - FastAPI 事件处理程序
- FastAPI - 安装子应用程序
- FastAPI - 中间件
- FastAPI - 安装 Flask 应用程序
- FastAPI - 部署
- FastAPI 有用资源
- FastAPI - 快速指南
- FastAPI - 有用的资源
- FastAPI - 讨论
FastAPI - 使用 GraphQL
Facebook 于 2012 年开发了GraphQL,这是一种新的 API 标准,旨在优化 RESTful API 调用。GraphQL 是 API 的数据查询和操作语言。与 REST 相比,GraphQL 更加灵活、高效和准确。GraphQL 服务器仅提供单个端点,并以客户端所需的精确数据进行响应。
由于 GraphQL 与 ASGI 兼容,因此可以轻松与 FastAPI 应用程序集成。有许多适用于 GraphQL 的 Python 库。其中一些列于下面 -
草莓
阿里亚德涅
塔蒂夫莱特
石墨烯
FastAPI 的官方文档建议使用 Strawberry 库,因为它的设计也是基于类型注释的(就像 FastAPI 本身一样)。
为了将 GraphQL 与 FastAPI 应用程序集成,首先将 Python 类装饰为 Strawberry 类型。
@strawberry.type class Book: title: str author: str price: int
接下来,声明一个包含返回 Book 对象的函数的Query类。
@strawberry.type class Query: @strawberry.field def book(self) -> Book: return Book(title="Computer Fundamentals", author="Sinha", price=300)
使用该Query类作为参数获取Strawberry.Schema对象
schema = strawberry.Schema(query=Query)
然后声明 GraphQL 类和 FastAPI 应用程序类的对象。
graphql_app = GraphQL(schema) app = FastAPI()
最后,将路由添加到 FastAPI 对象并运行服务器。
app.add_route("/book", graphql_app) app.add_websocket_route("/book", graphql_app)
在浏览器中访问http://localhost:8000/book。浏览器内的 GraphQL IDE 将打开。
在注释部分下方,使用 Graphiql IDE 的资源管理器栏输入以下查询。运行查询以在输出窗格中显示结果。