链接管理接口
链接的增删改查接口,支持多目标 URL、密码保护、过期时间和限流配置。
接口列表
| 方法 | 路径 | 说明 |
GET | /api/v1/links | 分页查询所有链接 |
GET | /api/v1/projects/:project_id/links | 查询项目下链接 |
POST | /api/v1/links | 创建链接 |
GET | /api/v1/links/:id | 获取链接详情 |
PUT | /api/v1/links/:id | 更新链接 |
DELETE | /api/v1/links/:id | 删除链接 |
创建链接
请求参数
| 字段 | 类型 | 必填 | 说明 |
project_id | int | 是 | 所属项目 ID |
code | string | 是 | 短码(URL 路径标识) |
targets | string[] | 是 | 目标 URL 列表(支持多个) |
strategy | string | 否 | 分发策略:random(随机)或 round_robin(轮询) |
password | string | 否 | 访问密码 |
expires_at | string | 否 | 过期时间(RFC3339 格式) |
rate_limit | int | 否 | 每分钟请求限制(0 表示不限) |
请求示例
POST /api/v1/links
Authorization: Bearer <token>
Content-Type: application/json
{
"project_id": 1,
"code": "myapp-v1",
"targets": [
"https://mirror1.example.com/file.zip",
"https://mirror2.example.com/file.zip",
"https://mirror3.example.com/file.zip"
],
"strategy": "round_robin",
"password": "secret123",
"rate_limit": 60
}
响应示例
{
"code": 200,
"message": "创建成功",
"data": {
"id": 1,
"project_id": 1,
"code": "myapp-v1",
"targets": [
"https://mirror1.example.com/file.zip",
"https://mirror2.example.com/file.zip",
"https://mirror3.example.com/file.zip"
],
"strategy": "round_robin",
"rate_limit": 60,
"created_at": "2025-01-01T00:00:00Z"
}
}
重定向访问
访问链接时,系统根据分发策略选择目标 URL 并执行 302 重定向。
| 方法 | GET |
| 路径 | /:prefix/:code |
| 认证 | 无需(如有密码需提供) |
访问示例
# 无密码链接
GET /soft/myapp-v1
→ 302 Location: https://mirror1.example.com/file.zip
# 有密码链接
GET /soft/myapp-v1?password=secret123
→ 302 Location: https://mirror2.example.com/file.zip
分发策略说明
| 策略 | 说明 |
random | 每次请求从目标列表中随机选择一个 |
round_robin | 按顺序依次轮询分配目标 |
查询链接列表
查询参数
| 参数 | 类型 | 说明 |
page | int | 页码(默认 1) |
page_size | int | 每页条数(默认 20) |
keyword | string | 搜索关键词 |
health_status | string | 健康状态筛选 |
👉 下一节:访问统计接口