SKILL.md
只读
名称
flask-api-development
描述
使用Flask开发轻量级API,包括路由、蓝图、数据库集成、认证和请求/响应处理。在构建RESTful API、微服务或轻量级Web服务时使用。
Flask API 开发
目录
概述
使用蓝图实现模块化组织,SQLAlchemy进行ORM,JWT认证,全面的错误处理,以及遵循REST原则的请求验证,创建高效的Flask API。
使用场景
- 使用Flask构建RESTful API
- 创建最小开销的微服务
- 实现轻量级认证系统
- 设计具有适当验证的API端点
- 与关系数据库集成
- 构建请求/响应处理系统
快速开始
最小工作示例:
# app.py
from flask import Flask, request, jsonify
from flask_cors import CORS
from flask_sqlalchemy import SQLAlchemy
from flask_jwt_extended import JWTManager
import os
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv('DATABASE_URL', 'sqlite:///app.db')
app.config['JWT_SECRET_KEY'] = os.getenv('JWT_SECRET_KEY', 'dev-secret')
app.config['JSON_SORT_KEYS'] = False
db = SQLAlchemy(app)
jwt = JWTManager(app)
CORS(app)
# 请求ID中间件
@app.before_request
def assign_request_id():
import uuid
request.request_id = str(uuid.uuid4())
# 错误处理器
@app.errorhandler(400)
def bad_request(error):
// ... (完整实现请参阅参考指南)
参考指南
references/ 目录中的详细实现:
| 指南 | 内容 |
|---|---|
| Flask应用设置 | Flask应用设置 |
| 使用SQLAlchemy的数据库模型 | 使用SQLAlchemy的数据库模型 |
| 认证和JWT | 认证和JWT |
| 用于模块化API设计的蓝图 | 用于模块化API设计的蓝图 |
| 请求验证 | 请求验证 |
| 应用工厂和配置 | 应用工厂和配置 |
最佳实践
✅ 应该
- 使用蓝图进行模块化组织
- 使用JWT实现适当的认证
- 验证所有用户输入
- 使用SQLAlchemy ORM进行数据库操作
- 实现全面的错误处理
- 对集合端点使用分页
- 记录错误和重要事件
- 返回适当的HTTP状态码
- 正确实现CORS
- 使用环境变量进行配置
❌ 不应该
- 在代码中存储秘密
- 使用全局变量共享状态
- 忽略数据库事务
- 不验证就信任用户输入
- 在生产环境中返回堆栈跟踪
- 使用可变默认参数
- 忘记处理数据库连接错误
- 在路由处理器中实现认证






