- FastAPI 教程
- FastAPI - 首页
- FastAPI - 简介
- FastAPI - Hello World
- FastAPI - OpenAPI
- FastAPI - Uvicorn
- FastAPI - 类型提示
- FastAPI - IDE 支持
- FastAPI - REST 架构
- FastAPI - 路径参数
- FastAPI - 查询参数
- FastAPI - 参数验证
- FastAPI - Pydantic
- FastAPI - 请求体
- FastAPI - 模板
- FastAPI - 静态文件
- FastAPI - HTML表单模板
- FastAPI - 访问表单数据
- FastAPI - 上传文件
- FastAPI - Cookie 参数
- FastAPI - Header 参数
- FastAPI - 响应模型
- FastAPI - 嵌套模型
- FastAPI - 依赖项
- FastAPI - CORS
- FastAPI - CRUD 操作
- FastAPI - SQL 数据库
- FastAPI - 使用 MongoDB
- FastAPI - 使用GraphQL
- FastAPI - WebSockets
- 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应用程序中。有很多Python库可用于GraphQL。其中一些列在下面:
Strawberry
Ariadne
Tartiflette
Graphene
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)
在浏览器中访问https://127.0.0.1:8000/book。将打开一个浏览器内GraphQL IDE。
在注释部分下方,使用Graphiql IDE的Explorer栏输入以下查询。运行查询以在输出窗格中显示结果。
广告