# Fastapi

> FastAPI - 高性能 Python Web API 框架

- **Type:** Skill
- **Install:** `agentstack add skill-cn-big-cabbage-github-skill-distiller-fastapi`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [CN-big-cabbage](https://agentstack.voostack.com/s/cn-big-cabbage)
- **Installs:** 0
- **Category:** [Developer Tools](https://agentstack.voostack.com/c/developer-tools)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [CN-big-cabbage](https://github.com/CN-big-cabbage)
- **Source:** https://github.com/CN-big-cabbage/github-skill-distiller/tree/main/cases/fastapi

## Install

```sh
agentstack add skill-cn-big-cabbage-github-skill-distiller-fastapi
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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 助手将引导你完成以下步骤：

1. 安装 FastAPI 及依赖（uvicorn、pydantic 等）
2. 创建应用入口文件 `main.py`
3. 定义 Pydantic 数据模型
4. 编写路径操作函数（路由处理器）
5. 配置依赖注入和中间件
6. 启动开发服务器并验证 API 文档

## 关键章节导航

- [安装指南](./guides/01-installation.md)
- [快速开始](./guides/02-quickstart.md)
- [高级用法](./guides/03-advanced-usage.md)
- [常见问题](./troubleshooting.md)

## 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 配置

## 快速示例

```python
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}
```

```bash
# 启动开发服务器
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

## 项目链接

- GitHub: https://github.com/tiangolo/fastapi
- 官网: https://fastapi.tiangolo.com
- 文档: https://fastapi.tiangolo.com/tutorial/
- PyPI: https://pypi.org/project/fastapi/

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [CN-big-cabbage](https://github.com/CN-big-cabbage)
- **Source:** [CN-big-cabbage/github-skill-distiller](https://github.com/CN-big-cabbage/github-skill-distiller)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-cn-big-cabbage-github-skill-distiller-fastapi
- Seller: https://agentstack.voostack.com/s/cn-big-cabbage
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
