文档

API、数据与基础设施

new-api 同源技术栈与多仓服务协议

归档内容,只读,不代表现行方案。现行文档见文档总览。

技术栈完全对齐 new-api

这是当前确定的实现约束,不再作为候选选型讨论。Core/Edge 使用同一固定基线的 Go 工具链、Gin、GORM、Redis/go-redis、decimal、相关鉴权和测试工具;保留 go.mod/go.sum 中所需依赖版本。前端沿用同版 React/TypeScript/Rsbuild/TanStack/Tailwind/shadcn/Base UI 工具链及锁文件约束,视觉继续使用 OceanWay 风格。

仅提取该仓职责所需依赖,不要求 Core 装入全部供应 SDK 或要求纯 Go Edge 附带前端。数据库选择在 new-api 已支持的驱动内确定,不额外换 ORM/语言/框架。现有产品和 Docs 工程未在本轮执行迁移,目标一致与现状是否一致分别记录。

本轮核验 go.mod 中 Go 1.25.1、Gin 1.9.1、GORM 1.25.12、go-redis/v8 8.11.5、decimal 1.4.0;具体版本以固定源码文件为准,不凭当前页面更新去追逐移动 main。

技术栈

层当前选择与边界
新 Core/Edge/WorkerGo + Gin;参考 new-api 已有实现,不沿用旧 TypeScript 服务作为默认基线
数据访问GORM;建议 PostgreSQL 作为客户主库,具体版本和部署由运行验证固定
缓存与限流Redis;不能成为客户余额或任务事实的唯一存储
前端React、TypeScript、Rsbuild、TanStack Router/Query/Table、Tailwind CSS 4、shadcn/Base UI
契约HTTP/JSON、OpenAPI、版本化事件与 Go/TypeScript 客户端;流式协议单独明确
文件S3 兼容对象存储接口,供应与预算另定
运行独立服务进程;Worker 可同仓不同进程,初期不强制 Kafka、Temporal、Kubernetes

固定来源为官方提交 385d2dfd10d821b25c8a6766bd16eea248cb1652,该提交 go.mod 声明 Go 1.25.1。它是已经检查的参考,不声称是当前最新生产版本。来源:go.mod、前端依赖、组件配置。

已有 Docs/Design/媒体工程和用户安排的原型不在本轮覆盖改写,接入时核对版本与差异。参考实现不等于跨仓直接 import 上游内部包。

接口与事务

Core 提供授权与额度预留、用量结算、释放/核对、操作查询、任务命令等能力;已有客户与公共模型接口优先沿用 new-api 的名称、路由与数据结构;只有拆分后新增的内部能力才在 Contracts 定义新接口。Edge 用内部服务身份调用,所有客户参数均需由 Core 验证归属。

HTTP 响应丢失时按稳定操作标识查询结果。幂等键限定账户和命令范围,绑定请求摘要;相同键不同请求冲突。预留与账务变更在 Core 事务内完成,供应执行不在数据库事务内。记录可恢复状态与必要 Outbox,跨服务不依赖一个分布式事务。

接口参考清单 · 源码基线与复用 · Core 计划。

On this page