SCForge 开放 API
更新: 10/5/2026 字数: 0 字 时长: 0 分钟
SCForge(生存战争插件 / 模组资源平台)对第三方开放的接口:资源(插件 / 模组)与版本的目录查询、发布、评论与投票。资源用 kind 区分插件与模组。
鉴权方式、作用域划分、错误形状与调用约定见对外开放 API 总览。要把发布流程接进 CI(打 tag 后自动把插件发到本平台),见 开发与自动化参考 —— 里面含 GitHub / Gitee / CNB 三个平台的密钥配置教程与完整工作流示例。
SCForge(生存战争插件 / 模组资源平台)的对外开放接口。
鉴权:读接口匿名可用;与「我的资源」相关的读写需要 API Key —— 请求头 Authorization: Bearer scf_
错误形状:所有错误响应统一为 { "detail": "中文说明" }(见 ApiError.cs),HTTP 状态码即语义(400 参数或规则不合法、401 未登录、403 作用域不足、404 资源不存在、409 状态冲突)。
时间:所有时间字段按北京时间(UTC+8,+08:00)输出。
服务器
ScforgeAddons
资源目录与发布接口(路由前缀 /scforge/addons)。
「资源」= 插件(kind=plugin,仅服务端)与模组(kind=mod,会下发到客户端)两类,
共用同一棵资源树与同一套接口,靠 kind 字段(查询参数 / 响应字段)区分;
界面上的「插件」「模组」两个板块只是对 kind 的预设筛选。
读取接口匿名可用(只看已通过审核的内容),登录后额外回传「我的投票」;
写入接口要求 Cookie 会话,发布与编辑只属于作者本人;
管理员的内容管理走 /scforge/admin。
操作
分页搜索:q / category / tag / gameVersion / sort / kind / page / pageSize。kind 省略即插件与模组都返回。
发布新资源(multipart/form-data)。提交后进入待审核,管理员通过后才对公众可见。 kind 决定是插件(plugin)还是模组(mod),创建后不可更改,包文件按 kind 校验扩展名。 请求体上限按「资源包上限 + 图片预算」放宽,否则大包会被 Kestrel 的 30MB 默认值挡下。
授权
SCForge API Key(scf_ 开头)。读接口匿名也可调用,带上 Key 才能访问「我的资源」与写接口。
请求体
资源包(必填):.dll(插件)或 .netmod(模组,会下发到客户端)。
"binary"资源类型:plugin(插件,仅服务端)或 mod(模组,会下发到客户端)。创建后不可更改。
标签键;同名多值可在表单里重复出现。
资源图标(可选):JPG / PNG / WebP / GIF。
"binary"截图(可选,最多 6 张)。
响应
OK
首页精选:显式精选优先,不足时按净评分补齐;kind 可限定只看插件或只看模组。
最近更新;kind 可限定只看插件或只看模组。
当前用户发布的资源(含待审核与已驳回)。
「我的资源」页的统计卡(含三种审核状态的数量)。
详情:idOrSlug 接受 GUID 或 slug。
编辑资源资料(作者,multipart):编辑会重新进入待审核。
删除资源(连同版本、评论与投票)。
追加一个版本(multipart):新版本进入待审核。
把被驳回的资源重新提交审核。
当前用户对某资源的投票状态(匿名可调,恒为 0)。
撤销投票(幂等:没有票也算成功)。
PUT /scforge/addons/{id}/vote/up
PUT /scforge/addons/{id}/vote/down
ScforgeApiKeys
API Key 的自助管理(路由前缀 /scforge/api-keys)。
与后台的 /scforge/admin/api-keys 分开:这里只管「登录用户管自己的 Key」,
后台是超管巡检全站(含他人 Key 的吊销)。
认证方式与 SCForge 其余写端点一致:不挂 [Authorize],由
ClouderyApi.Modules.Scforge.Api.ScforgeControllerBase 的异常翻译产出
{"detail":"…"}(统一错误体);调用者身份由 Cookie 会话或 API Key 两条通道之一提供。
ScforgeComments
评论与评论投票(路由前缀 /scforge)。
读取匿名可用(未登录时 myVote 恒为 0、canEdit / canDelete 为 false);
写入要求 Cookie 会话;编辑仅限作者,删除允许作者或管理员(巡查)。
只有已通过审核的资源(插件 / 模组)对公众开放评论。
ScforgeVersions
版本接口(路由前缀 /scforge/versions):
下载 + 作者侧维护(改元数据 / 换文件 / 删除 / 重新提交审核)。
维护动作只属于作者,且改动后版本会回到待审核。