Some checks failed
Build and Deploy Backend / build-and-deploy (push) Failing after 1m36s
3.4 KiB
3.4 KiB
RTC Backend - Claude Code 项目指南
项目概述
物联网设备管理平台后端,支持设备绑定 AI 智能体(心灵)。
技术栈
- Django 6.0.1 + DRF 3.16.1
- Python 3.12+ / MySQL / Redis
- JWT 认证 / 阿里云 OSS
核心目录
rtc_backend/
├── config/ # Django 配置
├── apps/ # 业务应用
│ ├── users/ # App 用户(手机号登录)
│ ├── admins/ # 管理员(用户名密码)
│ ├── devices/ # 设备管理
│ ├── spirits/ # AI 智能体
│ ├── stories/ # 故事模块
│ ├── music/ # 音乐模块
│ ├── notifications/ # 通知模块
│ ├── system/ # 系统模块(反馈、版本)
│ └── inventory/ # 出入库
├── utils/ # 工具函数
└── tests.py # 测试
关键规范
API 路由
- App 端:
/api/v1/* - 管理端:
/api/admin/*
响应格式
from utils.response import success, error
from utils.exceptions import ErrorCode
return success(data={...})
return error(ErrorCode.DEVICE_NOT_FOUND)
认证
AppJWTAuthentication- App 用户AdminJWTAuthentication- 管理员- 两套认证完全隔离,Token 不互通
错误码范围
| 范围 | 模块 |
|---|---|
| 0 | 成功 |
| 1-99 | 通用 |
| 100-199 | 用户 |
| 200-299 | 设备 |
| 300-399 | 智能体 |
| 400-499 | 批次 |
| 500-599 | 管理员 |
| 600-699 | 故事 |
| 700-799 | 音乐 |
| 800-899 | 通知 |
| 900-999 | 系统 |
常用命令
# 运行测试
cd rtc_backend && python manage.py test
# 生成迁移
python manage.py makemigrations
# 运行开发服务器
python manage.py runserver
# 查看 API 文档
# http://localhost:8000/api/docs/
开发规范
- 新增 API 必须添加对应测试用例
- 错误码按模块范围分配
- 使用
utils/response.py统一响应 - 复杂业务逻辑放入
services.py
Swagger 文档分组规范(必须遵守)
每个 ViewSet 必须使用 @extend_schema(tags=['标签名']) 装饰器标注所属模块,确保 Swagger 文档按模块分组展示。
from drf_spectacular.utils import extend_schema
@extend_schema(tags=['模块名'])
class MyViewSet(viewsets.ViewSet):
...
标签映射表(新增 ViewSet 时按此表选择 tag):
| 模块 | tag 名称 | 适用 ViewSet |
|---|---|---|
| App 认证 | 认证 |
AuthViewSet |
| App 用户 | 用户 |
UserViewSet |
| 设备 | 设备 |
DeviceViewSet |
| 智能体 | 智能体 |
SpiritViewSet |
| 故事 | 故事 |
StoryViewSet, ShelfViewSet |
| 音乐 | 音乐 |
MusicViewSet |
| 通知 | 通知 |
NotificationViewSet |
| 系统 | 系统 |
FeedbackViewSet, VersionViewSet |
| 管理员认证 | 管理员-认证 |
AdminAuthViewSet, AdminProfileViewSet |
| 管理员用户管理 | 管理员-用户管理 |
AdminUserManageViewSet (users) |
| 管理员账号管理 | 管理员-账号管理 |
AdminUserManageViewSet (admins) |
| 管理员库存 | 管理员-库存 |
DeviceTypeViewSet, DeviceBatchViewSet |
新增模块时:
- 在
config/settings.py的SPECTACULAR_SETTINGS['TAGS']中添加新标签 - 在 ViewSet 类上添加
@extend_schema(tags=['新标签'])装饰器
参考
完整技术规范请使用 /rtc-spec 命令查看。