从零开始构建 FastAPI RESTful API

1. FastAPI 简介

为什么选择 FastAPI?

  • 高性能:
    FastAPI 构建在 Starlette 和 Pydantic 之上,支持异步特性,其性能接近 Node.js 和 Go,远超 Flask 和 Django 等传统框架。

  • 异步支持:
    原生支持 async/await,适用于高并发场景。

  • 自动文档生成:
    通过简单的注解,FastAPI 自动生成交互式 API 文档(Swagger UI 和 ReDoc),使开发和测试变得更加容易。

2. 项目设置

1
pip install fastapi uvicorn

3. 创建你的第一个 API

1
2
3
4
5
6
7
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
return {"message": "Hello World"}

4. 添加路由和 Pydantic 模型

1
2
3
4
5
6
7
8
9
 from pydantic import BaseModel

class Item(BaseModel):
name: str
price: float

@app.post("/items/")
async def create_item(item: Item):
return {"item": item}

5. 一个简单的 FastAPI 应用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from fastapi import FastAPI
from pydantic import BaseModel
import uvicorn
app = FastAPI()


class Item(BaseModel):
name: str
price: float

@app.get("/")
async def root():
return {"message": "Hello World"}

@app.post("/items/")
async def create_item(item: Item):
return f'{item.name} {item.price}'

if __name__ == "__main__":
uvicorn.run(app, host="127.0.0.1", port=8000)

下图显示了 FastAPI 自动生成的交互式 API 文档(Swagger UI),开发者可以直接在其中测试端点。


从零开始构建 FastAPI RESTful API
https://gzthss.com/2025/05/12/Building-a-FastAPI-RESTful-API-from-Scratch/
Author
GZTHSS
Posted on
May 12, 2025
Licensed under