1. 安装 FastAPI:
使用 pip 安装 FastAPI:
pip install fastapi
2. 安装 Uvicorn:
Uvicorn 是一个 ASGI 服务器,用于运行 FastAPI 应用。安装 Uvicorn:
pip install uvicorn
3. 创建 FastAPI 应用:
创建一个 Python 文件(例如 main.py),并使用 FastAPI 定义一个简单的应用:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
4. 运行 FastAPI 应用:
使用 Uvicorn 运行 FastAPI 应用:
uvicorn main:app --reload
这将在 http://127.0.0.1:8000 启动应用,并提供实时重载功能。
5. 查看 API 文档:
访问 http://127.0.0.1:8000/docs 可以查看自动生成的交互式 API 文档(Swagger UI)。也可以访问 http://127.0.0.1:8000/redoc 查看 ReDoc 文档。
6. 定义路径参数和查询参数:
from fastapi import Path, Query
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = Query(..., title="Query String")):
return {"item_id": item_id, "q": q}
在上面的例子中,item_id 是路径参数,q 是查询参数。通过访问 /items/42?q=test,可以获取相应的参数值。
7. 请求体和响应体:
from pydantic import BaseModel
class Item(BaseModel):
name: str
description: str = None
price: float
tax: float = None
@app.post("/items/")
def create_item(item: Item):
return item
在这个例子中,Item 是一个 Pydantic 模型,用于验证请求体的结构。通过发送 POST 请求并传递 JSON 数据,可以创建一个新的 Item。
8. 路径操作依赖项:
from fastapi import Depends, HTTPException
def get_query(q: str = None):
return q
def get_path(p: str, q: str = Depends(get_query)):
if not p:
raise HTTPException(status_code=400, detail="Path parameter is required")
return {"p": p, "q": q}
@app.get("/items/{p}/{item_id}")
def read_item(item_id: int, common: dict = Depends(get_path)):
return {"item_id": item_id, "common": common}
在上面的例子中,get_path 函数是一个依赖项,被 get_path 和 read_item 函数依赖。
9. 路由的组织和分割:
可以使用路由组织和分割,将应用拆分为多个文件。例如,将路由放在一个 routers 目录下,然后使用 from .routers import router 导入路由。
10. 异步请求处理:
FastAPI 支持异步请求处理,可以使用 async def 定义异步函数。例如:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Hello, World!"}
这是一个简单的 FastAPI 用户指南,帮助你入门并开始使用 FastAPI 构建强大的 Web API。请查阅 FastAPI 官方文档以获取更详细的信息和进一步的学习资源:[FastAPI 官方文档](https://fastapi.tiangolo.com/)。
转载请注明出处:http://www.zyzy.cn/article/detail/7358/FastAPI