mcpField
F
flask-api-development

flask-api-development

github.com/midudev开发7.0k63 次安装今天更新
代码仓库

关于 flask-api-development

面向 Flask API 开发者的技能指南,涵盖模块化设计、数据库访问、JWT 身份验证、请求校验与错误处理。

主要功能

  1. 01基于 Blueprint 的 API 结构
  2. 02SQLAlchemy 数据库模型
  3. 03JWT 身份验证指南
  4. 04请求校验与错误处理

适用场景

  1. 01使用 Flask 构建 REST API
  2. 02按模块组织 API 路由
  3. 03添加身份验证和输入校验

安装

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

$npx skills add https://github.com/midudev/autoskills --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