Skip to content

总体架构 ​

架构概览 ​

开放接口作为艾恋相亲 SaaS 平台的第三层路由体系,与 C 端(/api/v1/)和后台(/admin/)并列,专为内部系统间数据互通设计。

[公司内部系统A]  ──HMAC签名──┐
[公司内部系统B]  ──HMAC签名──┼──> [/api/open/v1/*] ──> [FastAPI 后端]
[公司内部系统C]  ──HMAC签名──┘         │
                                       ├── OpenAPIAuth 依赖(签名验证)
                                       ├── RateLimiter(按 client 限流)
                                       ├── AuditLog(调用审计)
                                       ├── Sanitizer(脱敏,可选)
                                       └── 业务 Service 层(复用现有逻辑)

[FastAPI 后端]  ──Webhook推送──> [内部系统A/B/C](事件通知)

路由前缀:/api/open/v1/

与现有认证体系的关系 ​

维度C端 (/api/v1/)后台 (/admin/)开放接口 (/api/open/v1/)
认证方式JWT Bearer TokenJWT Bearer TokenHMAC 签名
身份标识终端用户管理员内部系统(应用级)
权限模型角色+认证+会员RBAC接口级权限白名单
限流策略按 IP按 IP按 app_key
HTTP 状态码统一返回 200统一返回 200标准 HTTP 状态码

文件结构 ​

ailian-api/app/
├── models/
│   └── open_api.py              # OpenApiClient, OpenApiCallLog 模型
├── schemas/
│   └── open_api.py              # 请求/响应 Schema(含字段映射转换)
├── services/
│   ├── open_api.py              # 开放接口业务逻辑
│   └── open_api_webhook.py      # Webhook 事件推送服务
├── api/
│   └── open/
│       ├── __init__.py          # 路由汇总
│       ├── auth.py              # 签名认证依赖 + 权限校验
│       ├── audit.py             # 调用审计日志中间件
│       ├── guest.py             # 嘉宾相关接口
│       ├── match.py             # 匹配相关接口
│       ├── company.py           # 公司相关接口
│       ├── membership.py        # 会员相关接口
│       ├── activity.py          # 活动相关接口
│       └── stats.py             # 数据统计接口
├── core/
│   ├── dependencies.py          # get_open_api_client() 薄封装
│   └── open_api_exceptions.py   # 自定义异常类 + 异常处理器
└── utils/
    ├── signature.py             # HMAC 签名工具函数
    ├── client_ip.py             # 客户端 IP 获取工具
    ├── secret_encrypt.py        # AES-256-GCM 加解密工具
    └── open_api_rate_limit.py   # Redis 滑动窗口限流

实施路线 ​

阶段内容
Phase 1数据模型 + 迁移 + 签名认证 + 限流 + 审计中间件 + 健康检查
Phase 2嘉宾管理 + 匹配管理开放接口(含批量、图片上传、导入)
Phase 3公司/会员/活动管理开放接口
Phase 4Webhook 事件推送服务
Phase 5数据统计接口 + Python SDK + 对接文档
Phase 6管理后台 — 客户端管理 + 调用日志 + 统计面板