书签
13 endpoints.
列出某个档案的书签页(不分页)
Section titled “列出某个档案的书签页(不分页)”尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。
下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/bookmarks.rs:479)的译文;原文以源码为准。
GET /archives/{id}/bookmarks——不分页,只返回这一个档案被标记书签的页面(升序,每项附带解析出的文件名)。读者用它判断当前页是否已加书签(那里只关心 page),BookmarkHoverGrid 也用它(它的标题需要 page 和 filename 两者,此前要额外发一次 GET /archives/{id}/files)。不要求档案存在——与 remove_bookmark 的姿态一致:档案不存在就只是没有书签可报告(也没有文件名可解析)。
响应
200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/bookmarks.rs:36 处的 handler。
该响应没有示例数据。
请求失败 — 常见原因:实例地址填错或不可达;实例未开启「为客户端 API 启用 CORS」;或者文档站是 HTTPS 而实例是局域网内的纯 HTTP(浏览器按混合内容拦截)。可以用上面的「复制为 cURL」在终端里发同样的请求。
填写你自己的实例地址,请求由浏览器直接发往该地址。
删除书签(DELETE /archives/{id}/bookmarks/{page},幂等)
Section titled “删除书签(DELETE /archives/{id}/bookmarks/{page},幂等)”尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。
下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/bookmarks.rs:751)的译文;原文以源码为准。
DELETE /archives/{id}/bookmarks/{page}——幂等,与 BookmarksRepository::remove 自身的契约一致;不会先检查档案是否存在,因为为一个已被删除的档案移除书签属于正当清理,不是错误。下面那次活动日志查询只是一次尽力而为的标签获取,与上述宽松处理是两回事——档案缺失时移除本身照常进行,只是 target.label: None(退化为只有 target.id,与任何其他「资源先消失」的操作类型相同)。
响应
200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/bookmarks.rs:37 处的 handler。
该响应没有示例数据。
该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。
请求失败 — 常见原因:实例地址填错或不可达;实例未开启「为客户端 API 启用 CORS」;或者文档站是 HTTPS 而实例是局域网内的纯 HTTP(浏览器按混合内容拦截)。可以用上面的「复制为 cURL」在终端里发同样的请求。
填写你自己的实例地址,请求由浏览器直接发往该地址。
添加书签(POST /archives/{id}/bookmarks/{page},不校验 page 是否超出该档案的页数)
Section titled “添加书签(POST /archives/{id}/bookmarks/{page},不校验 page 是否超出该档案的页数)”尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。
下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/bookmarks.rs:689)的译文;原文以源码为准。
POST /archives/{id}/bookmarks/{page}——bookmarks 不拿档案真实的 pagecount 去校验 page,与 update_progress(archives.rs)自身的宽松处理一致:唯一的调用方是读者界面,它总是传入自己当前、已经合法的页码。
响应
200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/bookmarks.rs:37 处的 handler。
该响应没有示例数据。
该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。
请求失败 — 常见原因:实例地址填错或不可达;实例未开启「为客户端 API 启用 CORS」;或者文档站是 HTTPS 而实例是局域网内的纯 HTTP(浏览器按混合内容拦截)。可以用上面的「复制为 cURL」在终端里发同样的请求。
填写你自己的实例地址,请求由浏览器直接发往该地址。
设置或清除该书签自身的名称(PUT /archives/{id}/bookmarks/{page}/name)
Section titled “设置或清除该书签自身的名称(PUT /archives/{id}/bookmarks/{page}/name)”尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。
下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/bookmarks.rs:562)的译文;原文以源码为准。
PUT /archives/{id}/bookmarks/{page}/name——设置或清除该书签自身的名称。书签本身不存在时返回 404(名称不能比它所命名的书签活得更久,而在不存在的书签上设置名称会静默留下一个 NAMES_HASH_KEY 孤儿条目,任何 add_bookmark 调用都不会清理它)——与 add_stamp「档案必须先存在」的姿态一致,只是这里检查的是书签存在性而非档案存在性。
响应
200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/bookmarks.rs:47 处的 handler。
该响应没有示例数据。
该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。
请求失败 — 常见原因:实例地址填错或不可达;实例未开启「为客户端 API 启用 CORS」;或者文档站是 HTTPS 而实例是局域网内的纯 HTTP(浏览器按混合内容拦截)。可以用上面的「复制为 cURL」在终端里发同样的请求。
填写你自己的实例地址,请求由浏览器直接发往该地址。
列出全部书签(GET /bookmarks,按档案聚合后依 sort/分页参数排序分页)
Section titled “列出全部书签(GET /bookmarks,按档案聚合后依 sort/分页参数排序分页)”尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。
下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/bookmarks.rs:252)的译文;原文以源码为准。
GET /bookmarks——全部书签,按档案聚合后依 sort/cursor/limit 排序分页。书签所属的档案已被删除时,它会被静默从结果中剔除,而不是让整个列表报错(与 BookmarksRepository::list_all 对个别格式错误条目已有的容忍一致——一个悬空引用不该拖垮其余全部仍然有效的书签)。
响应
200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/bookmarks.rs:29 处的 handler。
该响应没有示例数据。
请求失败 — 常见原因:实例地址填错或不可达;实例未开启「为客户端 API 启用 CORS」;或者文档站是 HTTPS 而实例是局域网内的纯 HTTP(浏览器按混合内容拦截)。可以用上面的「复制为 cURL」在终端里发同样的请求。
填写你自己的实例地址,请求由浏览器直接发往该地址。
读取已保存的 BookmarkHoverGrid 翻页顺序偏好
Section titled “读取已保存的 BookmarkHoverGrid 翻页顺序偏好”尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。
下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/bookmarks.rs:984)的译文;原文以源码为准。
GET /bookmarks/hover-page-order——已保存的 BookmarkHoverGrid 翻页顺序偏好(从未设置过时是 None;那种情况下前端会套用它自己的默认值 "pageDesc")。
响应
200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/bookmarks.rs:48 处的 handler。
该响应没有示例数据。
请求失败 — 常见原因:实例地址填错或不可达;实例未开启「为客户端 API 启用 CORS」;或者文档站是 HTTPS 而实例是局域网内的纯 HTTP(浏览器按混合内容拦截)。可以用上面的「复制为 cURL」在终端里发同样的请求。
填写你自己的实例地址,请求由浏览器直接发往该地址。
写入翻页顺序偏好(不记入活动日志——与 settings.rs 对显示类偏好采取的姿态一致)
Section titled “写入翻页顺序偏好(不记入活动日志——与 settings.rs 对显示类偏好采取的姿态一致)”尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。
下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/bookmarks.rs:1002)的译文;原文以源码为准。
不记入活动日志——属于仅影响显示的偏好,与 settings.rs 自己的 theme 字段采取的姿态相同(同样没有 record_manual 调用)。
响应
200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/bookmarks.rs:48 处的 handler。
该响应没有示例数据。
该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。
请求失败 — 常见原因:实例地址填错或不可达;实例未开启「为客户端 API 启用 CORS」;或者文档站是 HTTPS 而实例是局域网内的纯 HTTP(浏览器按混合内容拦截)。可以用上面的「复制为 cURL」在终端里发同样的请求。
填写你自己的实例地址,请求由浏览器直接发往该地址。
读取「只显示自身匹配 q 的书签」这一已保存偏好
Section titled “读取「只显示自身匹配 q 的书签」这一已保存偏好”尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。
下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/bookmarks.rs:1018)的译文;原文以源码为准。
GET /bookmarks/only-matching——已保存的「只显示自身匹配 q 的书签」偏好(从未设置过时为 false,与历史上一直显示全部的行为一致)。
响应
200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/bookmarks.rs:52 处的 handler。
该响应没有示例数据。
请求失败 — 常见原因:实例地址填错或不可达;实例未开启「为客户端 API 启用 CORS」;或者文档站是 HTTPS 而实例是局域网内的纯 HTTP(浏览器按混合内容拦截)。可以用上面的「复制为 cURL」在终端里发同样的请求。
填写你自己的实例地址,请求由浏览器直接发往该地址。
写入「只显示匹配书签」偏好(不记入活动日志,与翻页顺序偏好姿态一致)
Section titled “写入「只显示匹配书签」偏好(不记入活动日志,与翻页顺序偏好姿态一致)”尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。
下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/bookmarks.rs:1035)的译文;原文以源码为准。
不记入活动日志——与 put_hover_page_order 相同的「仅影响显示」姿态。
响应
200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/bookmarks.rs:52 处的 handler。
该响应没有示例数据。
该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。
请求失败 — 常见原因:实例地址填错或不可达;实例未开启「为客户端 API 启用 CORS」;或者文档站是 HTTPS 而实例是局域网内的纯 HTTP(浏览器按混合内容拦截)。可以用上面的「复制为 cURL」在终端里发同样的请求。
填写你自己的实例地址,请求由浏览器直接发往该地址。
列出 Tankoubon 内所有成员档案的书签,并换算成 Tankoubon 全局页码
Section titled “列出 Tankoubon 内所有成员档案的书签,并换算成 Tankoubon 全局页码”尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。
下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/bookmarks.rs:877)的译文;原文以源码为准。
GET /tankoubons/{id}/bookmarks——Tankoubon 内所有成员档案的全部书签,并换算成 Tankoubon 自己的全局页码。不分页,按全局页码升序——与 list_bookmarks_for_archive 自身的契约一致(用法也相同,都是给 BookmarkHoverGrid 用,只是这里对应 Tankoubon 卡片而不是普通档案卡片)。已不存在的成员档案(或 pagecount 为空,例如尚未扫描)会静默不贡献任何内容,而不是让整个请求失败——与 TankoubonFullResponse 自身文档所描述的、full_data 静默省略缺失成员是同一种容忍。
响应
200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/bookmarks.rs:64 处的 handler。
该响应没有示例数据。
请求失败 — 常见原因:实例地址填错或不可达;实例未开启「为客户端 API 启用 CORS」;或者文档站是 HTTPS 而实例是局域网内的纯 HTTP(浏览器按混合内容拦截)。可以用上面的「复制为 cURL」在终端里发同样的请求。
填写你自己的实例地址,请求由浏览器直接发往该地址。
删除 Tankoubon 书签(先换算全局页码再委托给档案级删除)
Section titled “删除 Tankoubon 书签(先换算全局页码再委托给档案级删除)”尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。
下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/bookmarks.rs:832)的译文;原文以源码为准。
DELETE /tankoubons/{id}/bookmarks/{page}——与 [add_tank_bookmark] 相同的「先换算再委托」形态,委托对象是 [remove_bookmark]。
响应
200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/bookmarks.rs:68 处的 handler。
该响应没有示例数据。
该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。
请求失败 — 常见原因:实例地址填错或不可达;实例未开启「为客户端 API 启用 CORS」;或者文档站是 HTTPS 而实例是局域网内的纯 HTTP(浏览器按混合内容拦截)。可以用上面的「复制为 cURL」在终端里发同样的请求。
填写你自己的实例地址,请求由浏览器直接发往该地址。
为 Tankoubon 添加书签(把 Tankoubon 全局页码换算到具体成员档案的页码)
Section titled “为 Tankoubon 添加书签(把 Tankoubon 全局页码换算到具体成员档案的页码)”尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。
下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/bookmarks.rs:817)的译文;原文以源码为准。
POST /tankoubons/{id}/bookmarks/{page}——把 Tankoubon 全局 page 换算到真实的成员档案 + 局部页码(tankoubons::resolve_tank_page),然后委托给 [add_bookmark] 自己的逻辑;写入本身仍然落在真实档案 ID 上,与在阅读 Tankoubon 时放置的图章相同(stamps.rs 自己的 Tankoubon 路由)——bookmarks.rs 底层的 BookmarksRepository 没有自己的 TANK_ 概念,也永远不需要。
响应
200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/bookmarks.rs:68 处的 handler。
该响应没有示例数据。
该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。
请求失败 — 常见原因:实例地址填错或不可达;实例未开启「为客户端 API 启用 CORS」;或者文档站是 HTTPS 而实例是局域网内的纯 HTTP(浏览器按混合内容拦截)。可以用上面的「复制为 cURL」在终端里发同样的请求。
填写你自己的实例地址,请求由浏览器直接发往该地址。
重命名 Tankoubon 书签(同样是先换算再委托)
Section titled “重命名 Tankoubon 书签(同样是先换算再委托)”尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。
下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/bookmarks.rs:665)的译文;原文以源码为准。
PUT /tankoubons/{id}/bookmarks/{page}/name——与 add_tank_bookmark/remove_tank_bookmark 相同的「先换算再委托」形态,委托对象是 [rename_bookmark]。
响应
200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/bookmarks.rs:72 处的 handler。
该响应没有示例数据。
该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。
请求失败 — 常见原因:实例地址填错或不可达;实例未开启「为客户端 API 启用 CORS」;或者文档站是 HTTPS 而实例是局域网内的纯 HTTP(浏览器按混合内容拦截)。可以用上面的「复制为 cURL」在终端里发同样的请求。
填写你自己的实例地址,请求由浏览器直接发往该地址。