每次请求都通过 XF-Api-Key 请求头发送完整令牌:
XF-Api-Key: YOUR_LONG_LIVED_TOKEN
令牌没有自动过期时间。发生泄露或不再使用时,应立即在“开发者令牌”页面撤销。
https://bbs.mc9y.net/api/resource-releases/
本地文件使用 multipart/form-data;外部下载地址可使用 JSON 或表单字段。
每次逻辑发布必须提供一个长度为 8 至 128 字符的 Idempotency-Key:
Idempotency-Key: release-123-1.4.0
网络超时后,使用相同请求头和完全相同的请求内容重试,会返回首次发布的版本,不会重复创建版本或更新说明。
同一个键不得用于不同请求内容,否则返回 409 idempotency_key_reused。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
resource_id |
integer | 是 | 需要更新的资源 ID。当前账户必须是资源作者或团队成员。 |
version_string |
string | 是 | 新版本号,例如 1.4.0。 |
file |
file | 二选一 | 本地版本文件,字段名固定为 file。 |
external_download_url |
string | 二选一 | 外部下载地址。与 file 必须且只能提交一个。 |
update_title |
string | 否 | 更新说明标题;提交时必须同时提交 update_message。 |
update_message |
string | 否 | 更新说明正文,支持站点 BB code。 |
curl.exe -X POST "https://bbs.mc9y.net/api/resource-releases/" ^
-H "XF-Api-Key: YOUR_LONG_LIVED_TOKEN" ^
-H "Idempotency-Key: release-123-1.4.0" ^
-F "resource_id=123" ^
-F "version_string=1.4.0" ^
-F "update_title=1.4.0 更新" ^
-F "update_message=修复已知问题并优化性能。" ^
-F "file=@E:\releases\plugin-1.4.0.jar"
curl.exe -X POST "https://bbs.mc9y.net/api/resource-releases/" ^
-H "XF-Api-Key: YOUR_LONG_LIVED_TOKEN" ^
-H "Idempotency-Key: release-123-1.4.0-external" ^
-H "Content-Type: application/json" ^
-d "{\"resource_id\":123,\"version_string\":\"1.4.0\",\"external_download_url\":\"https://example.com/plugin-1.4.0.jar\",\"update_title\":\"1.4.0 更新\",\"update_message\":\"修复已知问题并优化性能。\"}"
{
"success": true,
"idempotent_replay": false,
"version": {
"resource_version_id": 456,
"version_string": "1.4.0"
},
"update": {
"resource_update_id": 789,
"title": "1.4.0 更新"
}
}
幂等重试返回 idempotent_replay: true。未提交更新说明时,update 为 null。
需要审核的分类可能返回待审核状态。
400 |
缺少 XF-Api-Key、Idempotency-Key 或必填字段,请求字段无效,文件类型不允许或文件超过限制。 |
401 |
令牌无效,或者令牌已被删除。 |
403 |
令牌已停用、scope 不匹配、无权更新资源,或分类不允许对应下载类型。 |
404 |
资源不存在,或当前账户不可见。 |
409 |
幂等键正在处理、被用于不同内容,或首次发布结果已经不存在。 |