关于 fastapi-development
面向 Python 开发者的 FastAPI 开发技能,涵盖异步 API、Pydantic 验证、依赖注入和 JWT 身份验证,并提供分主题参考指南。
主要功能
- 01构建异步 REST API
- 02Pydantic 数据验证
- 03自动生成 OpenAPI 文档
- 04依赖注入与服务层
- 05JWT 身份验证
适用场景
- 01开发高性能 Python API
- 02创建异步 API 端点
- 03构建微服务
- 04为受保护路由添加身份验证
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill fastapi-development安装后在 Claude Code 中输入/fastapi-development确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/api-routes-with-async-endpoints.mdasync-database-models-and-queries.mdfastapi-application-setup.mdpydantic-models-for-validation.mdsecurity-and-jwt-authentication.mdservice-layer-for-business-logic.mdscripts/validate-api.shtemplates/api-scaffold.yaml详细介绍
FastAPI 开发
目录
概述
使用 FastAPI 构建快速、现代的 Python API,支持 async/await、自动生成 API 文档、通过 Pydantic 进行类型验证、依赖注入、JWT 身份验证以及 SQLAlchemy ORM 集成。
适用场景
- 构建高性能 Python REST API
- 创建异步 API 端点
- 实现自动生成的 OpenAPI/Swagger 文档
- 利用 Python 类型提示进行验证
- 构建支持异步的微服务
- 集成 Pydantic 进行数据验证
快速开始
最简可运行示例:
# main.py
from fastapi import FastAPI, HTTPException, status
from fastapi.middleware.cors import CORSMiddleware
from contextlib import asynccontextmanager
import logging
# Setup logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# Create FastAPI instance
app = FastAPI(
title="API Service",
description="A modern FastAPI application",
version="1.0.0",
docs_url="/api/docs",
openapi_url="/api/openapi.json"
)
# Add CORS middleware
app.add_middleware(
CORSMiddleware,
allow_origins=["http://localhost:3000"],
allow_credentials=True,
allow_methods=["*"],
// ... (see reference guides for full implementation)
参考指南
references/ 目录中的详细实现:
| 指南 | 内容 |
|---|---|
| FastAPI 应用设置 | FastAPI 应用设置 |
| 用于验证的 Pydantic 模型 | 用于验证的 Pydantic 模型 |
| 异步数据库模型和查询 | 异步数据库模型和查询 |
| 安全与 JWT 身份验证 | 安全与 JWT 身份验证 |
| 业务逻辑服务层 | 业务逻辑服务层 |
| 带异步端点的 API 路由 | 带异步端点的 API 路由 |
最佳实践
✅ 应该做
- 对 I/O 操作使用 async/await
- 利用 Pydantic 进行验证
- 使用依赖注入提供服务
- 使用 HTTPException 实现适当的错误处理
- 使用类型提示自动生成 OpenAPI 文档
- 为业务逻辑创建服务层
- 在受保护的路由上实现身份验证
- 使用环境变量进行配置
- 返回适当的 HTTP 状态码
- 使用文档字符串和标签记录端点
❌ 不应该做
- 使用同步数据库操作
- 不经验证就信任用户输入
- 在代码中存储机密
- 忽略类型提示
- 在响应中返回数据库模型
- 在路由处理程序中实现身份验证
- 使用可变默认参数
- 忘记验证查询参数
- 在生产环境中暴露堆栈跟踪
评论
支持 Markdown