API 概览
Dotnify 的后端是一组位于 /api/ 下的 Vercel Serverless Functions。所有端点接受和返回 JSON。API 遵循 REST 约定,使用一致的响应信封格式。
基础 URL
API 与前端从同一源提供服务:
https://your-dotnify-domain.vercel.app/api/响应格式
所有响应使用一致的 JSON 信封:
成功
json
{
"ok": true,
"data": { ... }
}错误
json
{
"ok": false,
"error": "错误描述"
}常见 HTTP 状态码:
| 状态码 | 含义 |
|---|---|
| 200 | 成功 |
| 201 | 已创建(POST) |
| 400 | 错误请求(缺失/无效参数) |
| 401 | 未授权(缺失或无效的 Bearer 令牌) |
| 404 | 未找到(服务商、解析域或记录) |
| 405 | 方法不允许 |
| 409 | 冲突(如管理员已初始化) |
| 422 | 无法处理的实体(如凭据验证失败) |
| 502 | 上游错误(DNS 服务商 API 调用失败) |
认证
大多数端点需要在 Authorization 头中提供 Bearer 令牌:
Authorization: Bearer <token>令牌通过 POST /api/auth/login 获取,有效期为 7 天。详见认证。
以下端点不需要认证:
GET /api/auth/mePOST /api/auth/setup
API 端点概览
认证
| 方法 | 端点 | 认证 | 描述 |
|---|---|---|---|
| POST | /api/auth/setup | 否 | 创建管理员账户(一次性) |
| POST | /api/auth/login | 否 | 登录并获取会话令牌 |
| GET | /api/auth/me | 可选 | 检查设置/认证状态 |
| POST | /api/auth/logout | 否 | 使当前会话失效 |
服务商
| 方法 | 端点 | 认证 | 描述 |
|---|---|---|---|
| GET | /api/providers | 是 | 列出所有服务商 |
| POST | /api/providers | 是 | 添加新服务商 |
| PATCH | /api/providers/:id | 是 | 更新服务商 |
| DELETE | /api/providers/:id | 是 | 删除服务商 |
| POST | /api/providers/verify | 是 | 验证凭据(不保存) |
| GET | /api/providers/:id/zones | 是 | 列出服务商的解析域 |
解析域
| 方法 | 端点 | 认证 | 描述 |
|---|---|---|---|
| GET | /api/zones | 是 | 列出所有服务商的解析域 |
记录
| 方法 | 端点 | 认证 | 描述 |
|---|---|---|---|
| GET | /api/zones/:zoneId/records | 是 | 列出解析域中的 DNS 记录 |
| POST | /api/zones/:zoneId/records | 是 | 创建 DNS 记录 |
| PATCH | /api/zones/:zoneId/records/:recordId | 是 | 更新 DNS 记录 |
| DELETE | /api/zones/:zoneId/records/:recordId | 是 | 删除 DNS 记录 |
线路(华为云)
| 方法 | 端点 | 认证 | 描述 |
|---|---|---|---|
| GET | /api/zones/:zoneId/lines | 是 | 列出华为云解析线路 |