Skip to content

API 参考

所有 API 端点前缀为 /api。需认证的接口在请求头携带 Authorization: Bearer <access_token>

认证令牌类型

类型前缀用途
Access Token-常规 API 认证,15 分钟有效
2FA Temp Token-2FA 验证流程,5 分钟有效,scope=2fa
API Keydmhub_Open API 认证,管理员创建
User Tokendmhub_pt_Open API 认证,用户个人令牌

认证流程

┌──────────┐     POST /api/auth/login    ┌──────────┐
│  Client  │ ─────────────────────────▶│  Server  │
│          │◀───────────────────────── │          │
│          │   { requires2FA,          │          │
│          │     tempToken }           │          │
│          │                           │          │
│          │  POST /api/2fa/verify      │          │
│          │  Bearer: tempToken        │          │
│          │──────────────────────────▶│          │
│          │◀───────────────────────── │          │
│          │   { accessToken,          │          │
│          │     refreshToken,         │          │
│          │     user }                │          │
└──────────┘                           └──────────┘

Open API 端点

端点方法所需权限
/api/v1/domainsGETdomains:read
/api/v1/domains/:idGETdomains:read
/api/v1/domains/:id/recordsGETrecords:read
/api/v1/domains/:id/recordsPOSTrecords:write
/api/v1/domains/:id/records/:recordIdPUTrecords:write
/api/v1/domains/:id/records/:recordIdDELETErecords:write

导出端点

端点方法权限说明
/api/export/domainsGETadmin导出域名列表(?format=csv|json
/api/export/dns-records/:domainIdGET域名访问权限导出指定域名 DNS 记录
/api/export/dns-recordsGETadmin导出所有 DNS 记录

其他端点

端点方法说明
/api/domains/:id/records/bulkPOST批量创建 DNS 记录(最多100条)

频率限制

  • 100 请求 / 分钟 / Key
  • 进程内存实现,多实例部署不共享计数

分页

列表接口支持分页参数:

参数说明默认值
page页码(从 1 开始)1
limit每页数量20
offset偏移量0

错误响应格式

所有接口错误返回统一格式:

json
{ "error": "错误描述" }

结构化错误码(通过 AppError 抛出时):

json
{
  "error": "错误描述",
  "code": 2000,
  "detail": null
}
字段说明
error人类可读的错误描述
code数字错误码,按业务域分段(可选)
detail附加详情,如字段校验错误(可选)

错误码分段:

范围业务域
1000-1999通用错误
2000-2999认证
3000-3999双因素认证
4000-4999域名
5000-5999DNS 记录
6000-6999团队
7000-7999服务商
8000-8999快照
9000-9999通知
10000-10999API Key
11000-11999导入

AGPL-3.0 协议