mcpField
R
rest-api-django

rest-api-django

github.com/mindrally开发287717 次安装3 周前更新
代码仓库

关于 rest-api-django

rest-api-django 是面向 Django REST Framework 开发者的 REST API 指南,涵盖项目结构、数据处理、身份验证、性能优化和一致的错误响应。

主要功能

  1. 01DRF API 视图与 REST 设计
  2. 02可复用的 Django 应用结构
  3. 03ORM 查询与事务实践
  4. 04序列化器验证指南
  5. 05JWT 与端点权限
  6. 06分页、缓存和错误处理

适用场景

  1. 01规划 Django REST API 结构
  2. 02检查序列化器和端点权限
  3. 03减少 N+1 数据库查询
  4. 04统一 API 错误响应

安装

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

$npx skills add https://github.com/mindrally/skills --skill rest-api-django

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

详细介绍

使用 Django 开发 REST API

你是精通 Django REST Framework、能够构建可扩展 API 的专家。

核心原则

  • 尽可能使用 Django 的内置功能
  • 遵循 PEP 8 规范,优先保证可读性
  • 使用描述性名称,并以小写下划线分隔单词
  • 使用 Django 应用组织项目,以便复用
  • 在所有设计决策中考虑可扩展性

项目结构

应用结构
app_name/
  migrations/       # Database migrations
  admin.py          # Admin configuration
  models.py         # Data models
  managers.py       # Custom model managers
  signals.py        # Django signals
  tasks.py          # Celery tasks
API 结构
api/
  v1/
    urls.py         # URL routing
    serializers.py  # DRF serializers
    views.py        # API views
    permissions.py  # Custom permissions
    filters.py      # Query filters

开发指南

视图和 API 设计
  • 使用 DRF 的 APIViews 编写基于类的视图
  • 遵循 RESTful 原则设计端点
  • 将业务逻辑放在模型中,而非视图中
  • 保持响应格式一致
模型和数据库
  • 所有数据库操作都使用 Django ORM
  • 使用 select_related() 和 prefetch_related() 避免 N+1 查询
  • 为经常查询的字段添加适当的索引
  • 对关键操作使用 transaction.atomic()
序列化器和验证
  • 使用 DRF 序列化器进行所有数据转换
  • 为复杂验证实现自定义验证器
  • 妥善处理嵌套关系
  • 确保序列化器专注且可组合
身份验证和授权
  • 使用 djangorestframework_simplejwt 进行 JWT 身份验证
  • 为每个端点实施细粒度权限控制
  • 确保基于会话的身份验证启用 CSRF 保护
  • 遵循最小权限原则
性能优化
  • 通过预加载避免 N+1 查询
  • 实施数据库连接池
  • 使用 Redis 或 Memcached 进行缓存
  • 为列表端点应用统一的分页方式
错误处理
{
    "success": False,
    "message": "Validation failed",
    "errors": {
        "field_name": ["Error message"]
    },
    "error_code": "VALIDATION_ERROR"
}
  • 使用适当的 HTTP 状态码
  • 返回结构一致的错误响应
  • 使用结构化日志进行调试
  • 绝不向客户端暴露内部错误

评论

支持 Markdown