关于 AB Store Web
原本 AB Store 是通过同步 Github Repo 中的 Plugin.php 来实现获取最新的插件。但是作为维护总是修改json文件有点麻烦,于是搭建了一个专门用于管理插件仓库的网站: AB Store Web,AB Store Web 开放 API,方便开发者集成。
AB Store Web API
> Base URL:`https://ab-store.lhl.one`
> 所有接口返回 JSON:`{ ok: boolean, ... }`。鉴权方式:HttpOnly Cookie 会话(`abs_session`)或分享口令(`?token=`)。
> 人机验证:部分接口需在请求体携带 `turnstile`(前端 widget token,字段名对应 `cf-turnstile-response`)。状态码约定
| HTTP | 含义 |
|---|---|
| 200 | 成功 |
| 400 | 参数错误 |
| 401 | 未登录 |
| 403 | 无权访问 / 人机验证失败 |
| 404 | 资源不存在 |
| 409 | 冲突(如同目录重复提交) |
| 429 | 频率超限 |
插件状态枚举
| status | 含义 |
|---|---|
pending | 审核中(新提交 / 更新审核) |
approved | 已通过(上架) |
rejected | 已拒绝 |
archived | 已下架 |
私密插件(isPrivate: true)不进入公共列表,详情页仅上传者/持完整链接访问 (插件ID+Token)。获取插件列表
GET /api/plugins无需鉴权。返回所有已通过且非私密的插件。
响应
{
"ok": true,
"plugins": [
{
"id": "a1b2c3d4",
"name": "AdminBeautify",
"dir": "AdminBeautifyStore",
"author": "LHL",
"version": "1.0.21",
"github": "https://github.com/...",
"homepage": "https://...",
"tags": ["editor", "md3"],
"desc": "简介",
"minVer": "1.2.0",
"maxVer": "1.2.1",
"uploader": "lhl",
"downloads": 128,
"createdAt": 1755300000000
}
]
}获取单个插件详情
GET /api/plugin/<id>
GET /api/plugin/<id>?token=<shareToken> # 待审核 / 私密插件approved且非私密:公开访问pending/ 私密 / 其他状态:需正确token或登录(上传者/管理员)
下载插件
GET /api/download/<id>
GET /api/download/<id>?token=<shareToken>302 重定向到最终下载地址,下载计数 +1。鉴权同详情接口。
注意限流
- 登录:30 次/IP/小时
- 分享 / 注册 / 重置:20 次/IP/小时
- 验证码:同邮箱 1 分钟 1 次
本文章采用 CC BY-NC-SA 4.0 协议授权,转载请注明来源。
文章名称:AB Store Web API
文章链接:https://blog.lhl.one/artical/1326.html