编写、调试与调优 Playwright 测试,涵盖定位器策略、追踪诊断与 CI 友好的超时配置。
编程
FastAPI
试用FastAPI - 高性能 Python Web API 框架
它能做什么
本技能帮助开发者使用 FastAPI 构建现代化、高性能的 Web API,支持以下场景:
技能文档
FastAPI 高性能 Python Web API 框架
技能概述
本技能帮助开发者使用 FastAPI 构建现代化、高性能的 Web API,支持以下场景:
- REST API 开发: 快速构建符合 OpenAPI 标准的 RESTful 接口
- 数据验证: 基于 Pydantic 的自动请求/响应数据验证
- 自动文档: 自动生成 Swagger UI 和 ReDoc 交互式 API 文档
- 异步支持: 原生支持 async/await,处理高并发场景
- 依赖注入: 强大的依赖注入系统,简化认证、数据库连接等公共逻辑
- 安全认证: 内置 OAuth2、JWT、API Key 等认证方案
技术基础: FastAPI 构建于 Starlette(Web 框架层)和 Pydantic(数据验证层)之上,性能接近 NodeJS 和 Go。
架构概览
FastAPI 应用架构
├── app/
│ ├── main.py # 应用入口,注册路由和中间件
│ ├── dependencies.py # 公共依赖(认证、数据库会话等)
│ ├── models/ # Pydantic 数据模型
│ │ ├── __init__.py
│ │ └── user.py
│ ├── routers/ # 路由模块(按业务划分)
│ │ ├── __init__.py
│ │ ├── users.py
│ │ └── items.py
│ ├── crud/ # 数据库操作层
│ │ ├── __init__.py
│ │ └── user.py
│ └── core/ # 核心配置
│ ├── config.py
│ └── security.py
核心概念
| 概念 | 说明 |
|---|---|
| 路径操作 | 使用 @app.get/post/put/delete 装饰器定义 API 端点 |
| 路径参数 | URL 中的变量,如 /items/{item_id} |
| 查询参数 | URL 查询字符串,如 /items?skip=0&limit=10 |
| 请求体 | 通过 Pydantic 模型接收 JSON 数据 |
| 依赖注入 | 通过 Depends() 注入可复用的依赖函数 |
| 中间件 | 处理每个请求/响应的通用逻辑 |
| 路由器 | APIRouter 将路由按模块组织,类似 Flask Blueprint |
使用流程
AI 助手将引导你完成以下步骤:
- 安装 FastAPI 及依赖(uvicorn、pydantic 等)
- 创建应用入口文件
main.py - 定义 Pydantic 数据模型
- 编写路径操作函数(路由处理器)
- 配置依赖注入和中间件
- 启动开发服务器并验证 API 文档
关键章节导航
- 安装指南
- 快速开始
- 高级用法
- 常见问题
AI 助手能力
当你向 AI 描述需求时,AI 会:
- 自动生成 路由处理函数和 Pydantic 数据模型
- 自动配置 依赖注入(数据库会话、用户认证)
- 自动搭建 项目骨架结构(models、routers、crud 分层)
- 自动实现 JWT 认证和 OAuth2 安全方案
- 自动集成 SQLAlchemy/SQLModel 数据库操作
- 自动编写 测试用例(pytest + httpx)
- 自动处理 CORS 配置和自定义中间件
核心功能
- ✅ 基于 Python 类型提示的自动数据验证
- ✅ 自动生成 OpenAPI/Swagger 交互式文档
- ✅ 原生 async/await 异步支持
- ✅ 强大的依赖注入系统
- ✅ 内置安全认证(OAuth2、JWT、API Key、HTTP Basic)
- ✅ 支持 WebSocket 实时通信
- ✅ 支持 GraphQL(通过 Strawberry 集成)
- ✅ 支持后台任务(BackgroundTasks)
- ✅ 支持文件上传和静态文件服务
- ✅ 支持中间件和 CORS 配置
快速示例
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
price: float
is_offer: bool | None = None
@app.get("/")
async def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str | None = None):
return {"item_id": item_id, "q": q}
@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item):
return {"item_name": item.name, "item_id": item_id}
# 启动开发服务器
fastapi dev main.py
# 或使用 uvicorn
uvicorn main:app --reload
访问 http://127.0.0.1:8000/docs 查看自动生成的交互式 API 文档。
扩展点
- 中间件: 实现日志、限流、请求追踪等横切关注点
- 依赖注入: 封装数据库连接、权限校验等可复用逻辑
- 事件处理:
startup/shutdown生命周期钩子 - 自定义响应: 支持
JSONResponse、HTMLResponse、FileResponse等 - 插件生态: 支持 SQLAlchemy、Celery、Redis、S3 等主流库
环境要求
- Python 3.8 或更高版本(推荐 3.11+)
- pip 包管理器
- (可选)虚拟环境工具(venv、conda、uv)
许可证
MIT License
项目链接
相关技能
用 Python 自适应抓取网页,默认绕过反爬保护,支持从单次请求到大规模并发爬取。
把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。
通过 6551 REST API 查询 Twitter/X 用户资料、推文、粉丝事件与 KOL 数据。
在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。
以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。
cn-big-cabbage 的更多技能
浏览全部技能高性能自适应 Python 网页抓取框架,内置反爬虫绕过(Cloudflare Turnstile)、智能元素重定位、完整爬虫框架和 MCP 服务器,适合 AI 辅助数据提取和大规模爬取任务
用 React 代码程序化生成视频的框架,支持 CSS/Canvas/SVG/WebGL,可部署到 Lambda/Cloud Run 大规模渲染,适合创意视频生成、数据可视化视频和个性化视频批量生产
从零构建的轻量级无头浏览器,专为 AI 智能体和自动化设计,比 Headless Chrome 快 9 倍、内存占用低 16 倍,兼容 CDP 和 Playwright/Puppeteer,内置 MCP 服务器
Chrome DevTools MCP 服务器,让 AI 编码助手(Claude Code、Cursor、Copilot)直接控制和调试真实 Chrome 浏览器,实现截图、性能分析、网络请求检查、控制台调试和自动化操作
Claude Code 多智能体编排平台,部署 100+ 专业 AI 智能体协同工作,通过蜂群拓扑(层级/网状/环形/星形)协调自主工作流,内置自学习、向量记忆和原生 MCP 集成
Google 出品的 Python 库,用 LLM 从非结构化文本中提取结构化信息,每个提取结果精确对应源文本位置,支持交互式可视化,适配 Gemini/OpenAI/Ollama 等多种模型