跳转到内容

数据库 API

14 endpoints.

GEThttp://localhost:3000/api/database/backup

扫描整个数据库并以 JSON 形式返回备份。 数据库较大时建议改用 POST 版本——这个基础 GET 端点如果生成备份耗时过长可能会超时。
这份备份可以通过「备份与恢复」功能手动重新导入。

响应

200成功响应
{
  "archives": [
    {
      "arcid": "28697b96f0ac5858be2614ed10ca47742c9522fd",
      "filename": "FateGOMEMO",
      "summary": null,
      "tags": "parody:fate grand order, group:wadamemo, artist:wada rco, artbook, full color, super:test, date_added:1553537258",
      "thumbhash": "ec2a0ca3a3da67a9390889f0910fe494241faa9a",
      "title": "Fate GO MEMO"
    },
    {
      "arcid": "d1858d5dc36925aa66be072a97817650d39de166",
      "filename": "(Memes)9B789D38B0784C5FBC9D59A9F24D20F2",
      "summary": null,
      "tags": "",
      "thumbhash": "9846bb6d62949b56545c42e88d8010446b65702e",
      "title": "test title"
    }
  ],
  "categories": [
    {
      "archives": [],
      "catid": "SET_1749925633",
      "name": "english",
      "search": "language:english"
    }
  ],
  "tankoubons": [
    {
      "archives": [
        "28697b96f0ac5858be2614ed10ca47742c9522fd",
        "d1858d5dc36925aa66be072a97817650d39de166"
      ],
      "name": "sailor moon",
      "tankid": "TANK_1749925516"
    }
  ]
}

填写你自己的实例地址,请求由浏览器直接发往该地址。

POSThttp://localhost:3000/api/database/backup

排入一个 Minion 任务来生成备份 JSON 文件。
用返回的任务 ID 查看进度,完成后下载该文件。

响应

200已入队的任务
{
  "job": 42,
  "operation": "queue_backup",
  "success": 1
}

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

GEThttp://localhost:3000/api/database/backup/{jobid}

下载由已完成的备份任务生成的备份 JSON 文件。

路径参数

jobidinteger必填
已完成的备份任务 ID。

查询参数

formatstring · enum: json | file可选
返回的备份格式,默认 file。json 会以 JSON 响应返回备份。

响应

200备份 JSON 文件
{}
400任务不存在,或尚未完成
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

填写你自己的实例地址,请求由浏览器直接发往该地址。

POSThttp://localhost:3000/api/database/clean

清理数据库:先隐藏、再移除那些文件已不在文件系统上的条目。
文件已不存在的条目在第一次清理时只做解除关联,因此不会出现在界面上——之后再跑一次清理才会删除这些已解除关联的条目。

响应

200成功响应
{
  "deleted": 0,
  "operation": "",
  "success": 0,
  "unlinked": 0
}

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

POSThttp://localhost:3000/api/database/drop

删除整个数据库,包括用户偏好设置。 这是个相当危险的端点,调用它可能会让你作为客户端被锁在服务端之外!

响应

200成功响应
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

该端点只接受网页会话(登录本站所用实例后浏览器自动携带的 cookie)。API 令牌会被服务端拒绝,因此这里不提供令牌输入框,上面的命令行也不带 Authorization 头。

填写你自己的实例地址,请求由浏览器直接发往该地址。

导入调用者直接上传的 LANraragi(或 LANrurugi)备份 JSON 文件——不需要实例在线

Section titled “导入调用者直接上传的 LANraragi(或 LANrurugi)备份 JSON 文件——不需要实例在线”
POSThttp://localhost:3000/api/database/import-legacy

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/database.rs:785)的译文;原文以源码为准。

导入调用者直接上传的 LANraragi(或 LANrurugi)备份 JSON 文件——不连接任何远端 Redis 实例(原因见 lanrurugi_backup::import_legacy 自身的模块文档:官方 LANraragi Docker 镜像默认从不把它内置的 Redis 暴露到容器外)。与上面的 queue_restore 是相同的 multipart 文件上传形态,但这里刻意做成独立的 handler/解析/持久化路径,而不是 queue_restore 的一个变体——尽管两者的 JSON 形状表面相似却绝不能共用代码,原因见 import_legacy 自身的文档。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/database.rs:44 处的 handler。

该响应没有示例数据。

该端点只接受网页会话(登录本站所用实例后浏览器自动携带的 cookie)。API 令牌会被服务端拒绝,因此这里不提供令牌输入框,上面的命令行也不带 Authorization 头。

填写你自己的实例地址,请求由浏览器直接发往该地址。

本实例一共执行过多少次 LANraragi 导入——前端在导入前会读它

Section titled “本实例一共执行过多少次 LANraragi 导入——前端在导入前会读它”
GEThttp://localhost:3000/api/database/import-legacy/count

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/database.rs:994)的译文;原文以源码为准。

本实例一共执行过多少次 LANraragi 导入——前端在展示导入界面之前会读它,以便在第 2 次及以后的导入时给出提醒(「你之前做过这个——建议先做一次完整备份」),而不必等导入本身完成。只读,与 queue_import_legacy 自己的递增(在真实导入完成后发生)分开,与 ImportSnapshotRepository::import_count 自身的读/增分离一致。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/database.rs:48 处的 handler。

该响应没有示例数据。

该端点只接受网页会话(登录本站所用实例后浏览器自动携带的 cookie)。API 令牌会被服务端拒绝,因此这里不提供令牌输入框,上面的命令行也不带 Authorization 头。

填写你自己的实例地址,请求由浏览器直接发往该地址。

导入快照的元数据列表,最新的在前(不含 document 内容)

Section titled “导入快照的元数据列表,最新的在前(不含 document 内容)”
GEThttp://localhost:3000/api/database/import-snapshots

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/database.rs:1021)的译文;原文以源码为准。

按时间倒序的元数据列表(不含 document 内容——见 ImportSnapshotRepository::list_metadata 自身的文档),供备份页面那个「时光机」式回滚点选择器使用。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/database.rs:49 处的 handler。

该响应没有示例数据。

该端点只接受网页会话(登录本站所用实例后浏览器自动携带的 cookie)。API 令牌会被服务端拒绝,因此这里不提供令牌输入框,上面的命令行也不带 Authorization 头。

填写你自己的实例地址,请求由浏览器直接发往该地址。

DELETEhttp://localhost:3000/api/database/import-snapshots/{id}

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

对应的 handler 是 delete_import_snapshot,位于 crates/lanrurugi-api/src/database.rs:1063。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/database.rs:50 处的 handler。

该响应没有示例数据。

该端点只接受网页会话(登录本站所用实例后浏览器自动携带的 cookie)。API 令牌会被服务端拒绝,因此这里不提供令牌输入框,上面的命令行也不带 Authorization 头。

填写你自己的实例地址,请求由浏览器直接发往该地址。

把完整的 BackupDocument 内容作为可下载的 JSON 文件返回(与导入时接受的格式相同)

Section titled “把完整的 BackupDocument 内容作为可下载的 JSON 文件返回(与导入时接受的格式相同)”
GEThttp://localhost:3000/api/database/import-snapshots/{id}

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/database.rs:1041)的译文;原文以源码为准。

把完整的 BackupDocument 内容作为可下载的 JSON 文件返回——与 POST /database/restore 接受的形状相同,因此前端自己的「恢复」流程可以把这个文件原样喂回去,两端都不需要任何格式转换。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/database.rs:50 处的 handler。

该响应没有示例数据。

该端点只接受网页会话(登录本站所用实例后浏览器自动携带的 cookie)。API 令牌会被服务端拒绝,因此这里不提供令牌输入框,上面的命令行也不带 Authorization 头。

填写你自己的实例地址,请求由浏览器直接发往该地址。

DELETEhttp://localhost:3000/api/database/isnew

清除全部档案上的「新!」标记。

响应

200成功响应
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

POSThttp://localhost:3000/api/database/rebuild-index

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

对应的 handler 是 rebuild_index,位于 crates/lanrurugi-api/src/database.rs:702。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/database.rs:43 处的 handler。

该响应没有示例数据。

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

POSThttp://localhost:3000/api/database/restore

排入一个 Minion 任务,从备份 JSON 文件恢复。
用返回的任务 ID 查看进度。

请求体

multipart/form-data

响应

200已入队的任务
{
  "job": 43,
  "operation": "queue_restore",
  "success": 1
}
400请求无效
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

GEThttp://localhost:3000/api/database/stats

从数据库获取标签,并附带表示其流行度的数值。

查询参数

minweightinteger可选
只想取权重不低于给定最小值的标签时传这个参数。 不传时默认为 1,即返回全部标签。
hide_excluded_namespacesstring可选
设为 true 时,把服务端设置里配置的命名空间从结果中排除。默认返回全部标签。

响应

200成功响应
[
  {
    "namespace": "character",
    "text": "jeanne alter",
    "weight": 2
  },
  {
    "namespace": "character",
    "text": "xuanzang",
    "weight": 2
  },
  {
    "namespace": "parody",
    "text": "fate grand order",
    "weight": 3
  },
  {
    "namespace": null,
    "text": "artbook",
    "weight": 3
  }
]

填写你自己的实例地址,请求由浏览器直接发往该地址。