mcpField
F
flask-api-development

flask-api-development

github.com/aj-geddes开发3731.4k 次安装34 周前更新
代码仓库

关于 flask-api-development

面向使用 Flask 构建 REST API 和轻量微服务的开发者,涵盖模块化结构、数据库访问、认证、验证与错误处理。

主要功能

  1. 01使用 Blueprint 组织 API
  2. 02SQLAlchemy 模型与数据库访问
  3. 03JWT 认证
  4. 04请求验证与错误处理

适用场景

  1. 01组织 Flask REST API
  2. 02为端点添加 JWT 认证
  3. 03将 API 路由连接到关系数据库

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill flask-api-development

安装后在 Claude Code 中输入/flask-api-development确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
application-factory-and-configuration.md
authentication-and-jwt.md
blueprints-for-modular-api-design.md
database-models-with-sqlalchemy.md
flask-application-setup.md
request-validation.md
scripts/
validate-api.sh
templates/
api-scaffold.yaml

详细介绍

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)

# Request ID middleware
@app.before_request
def assign_request_id():
    import uuid
    request.request_id = str(uuid.uuid4())

# Error handlers
@app.errorhandler(400)
def bad_request(error):
// ... (see reference guides for full implementation)

参考指南

references/ 目录中的详细实现:

指南内容
Flask 应用设置Flask 应用设置
使用 SQLAlchemy 定义数据库模型使用 SQLAlchemy 定义数据库模型
身份验证和 JWT身份验证和 JWT
用于模块化 API 设计的蓝图用于模块化 API 设计的蓝图
请求验证请求验证
应用工厂和配置应用工厂和配置

最佳实践

✅ 应该做
  • 使用蓝图实现模块化组织
  • 使用 JWT 实现恰当的身份验证
  • 验证所有用户输入
  • 使用 SQLAlchemy ORM 执行数据库操作
  • 实施全面的错误处理
  • 为集合端点使用分页
  • 记录错误和重要事件
  • 返回恰当的 HTTP 状态码
  • 正确配置 CORS
  • 使用环境变量进行配置
❌ 不要做
  • 将机密信息存储在代码中
  • 使用全局变量保存共享状态
  • 忽略数据库事务
  • 不经验证就信任用户输入
  • 在生产环境中返回堆栈跟踪
  • 使用可变默认参数
  • 忘记处理数据库连接错误
  • 在路由处理程序中实现身份验证

评论

支持 Markdown