← 中文资源

简体中文版本

FastAPI Hello API — 可运行 Python 项目

最小 FastAPI 项目,包含健康检查、带路径/查询参数的问候端点、自动 OpenAPI 文档、源码、依赖和测试。

阅读英文原文

项目说明

这是一个用于验证 FastAPI 基础能力的可运行项目,展示路由、参数校验和自动文档。

运行方法

创建虚拟环境并安装依赖,运行 uvicorn main:app --reload,访问 /health 与 /hello/{name},在 /docs 查看 OpenAPI 文档。

验证方式

测试健康端点返回 200,问候端点正确使用路径和查询参数,非法参数返回 422。检查 /openapi.json 包含两个路径。生产部署应使用非 root 用户、固定依赖版本,并配置超时和访问日志;不要在生产开启 reload。

验收清单

完成「FastAPI Hello API — 可运行 Python 项目」后,按节点或操作步骤逐项自查:准备可复现的本地环境,执行文档中的命令,记录输出与失败信息,并确认权限、空数据和失败恢复路径都有对应证据。

代码示例

# Create virtual environment
python -m venv .venv
source .venv/bin/activate   # or .venv\Scripts\activate on Windows

# Install dependencies
pip install -r requirements.txt

# Run the dev server
uvicorn main:app --reload
fastapi-hello/
├── main.py              # App entry point with routes
├── routers/
│   └── hello.py         # /hello endpoint router
├── requirements.txt     # Dependencies
├── test_main.py         # Pytest test suite
└── .venv/               # Virtual environment (created on install)
# main.py
from fastapi import FastAPI
from routers.hello import hello_router

app = FastAPI(
    title="Hello API",
    description="A minimal FastAPI project for educational purposes",
    version="1.0.0",
)

app.include_router(hello_router, tags=["hello"])


@app.get("/health")
async def health_check():
    return {"status": "ok", "version": "1.0.0"}
# routers/hello.py
from fastapi import APIRouter

hello_router = APIRouter()


@hello_router.get("/hello/{name}")
async def greet_by_path(name: str):
    """Greet a user by name (path parameter)."""
    return {"message": f"Hello, {name}!"}


@hello_router.get("/greet")
async def greet_by_query(name: str = "World", greeting: str = "Hello"):
    """Greet a user with configurable greeting (query parameters)."""
    return {"message": f"{greeting}, {name}!"}
# requirements.txt
fastapi==0.115.5
uvicorn==0.32.1
pytest==8.3.4
httpx==0.27.0
pytest
Test Files  1 passed (1)
      Tests  3 passed (3)
   Duration  1.45s