跳转到内容

用文档站测试 API

API 参考 里每个端点都有一个请求面板:填服务器地址、填令牌、点发送。这一页说明它到底 把请求发到哪里、需要什么前置条件,以及浏览器拦下来的时候怎么继续。

从你的浏览器,直接发到你在面板里填的那个地址。

  • 你在下面填的地址与令牌,只存在你浏览器的本地存储里,也只发往那个地址。
  • 本项目没有中间服务器、没有代理。绝不会有一条路径把用户的令牌或内网地址送到本项目的基础设施。
  • 唯一的例外是页面本身:API 描述文档(openapi.json)和 Scalar 的运行时都由文档站同源提供,不走外部 CDN。

因此这个功能不需要任何“公开 demo 实例”——它的目标从来就是你自己的实例。

1. 你的实例要对这个浏览器可达

Section titled “1. 你的实例要对这个浏览器可达”

面板里填的地址必须是当前浏览器能访问到的。你在这台机器上跑文档站、实例在另一台机器上,那么 localhost 指的是浏览器所在的机器,不是实例所在的机器。

设置页面里的 「为客户端 API 启用 CORS」 必须打开。默认是关闭的,此时浏览器会拒绝跨源请求。

打开之后,实例会允许浏览器预检所需的头——包括带 JSON 请求体时必需的 Content-Type。如果你的实例版本较 旧、带请求体的调用总是失败,多半就是这一项没有覆盖到。

3. HTTPS 页面只能调用 HTTPS 实例和 http://localhost

Section titled “3. HTTPS 页面只能调用 HTTPS 实例和 http://localhost”

这是浏览器强制执行的规则,和 LANrurugi 无关:

文档站 你填的实例地址 结果
https://… https://lrr.example.com ✅ 可用
https://… http://localhost:3000 ✅ 可用(浏览器把 localhost 当作可信来源)
https://… http://192.168.1.10:3000 ❌ 被当作混合内容拦掉
http://… 任意 ✅ 可用(站点本身也是 HTTP)

局域网 IP 不享受 localhost 那个豁免。想在 HTTPS 文档站上测试局域网里的实例,两条路:

  • 给实例配 HTTPS:反向代理(Caddy / Traefik / nginx)、Cloudflare Tunnel,或者 VPN 里带证书的入口。
  • 把端口转发到 localhost:
    终端窗口
    ssh -L 3000:127.0.0.1:3000 <跑着实例的机器>
    然后在面板里填 http://localhost:3000。浏览器把它当作可信来源,直接可用。

浏览器不允许的时候:用命令行

Section titled “浏览器不允许的时候:用命令行”

每个端点都有一份可直接复制的命令行(cURL),在代码示例面板里。它由端点本身生成,不依赖浏览器、 不依赖 CORS、不依赖 HTTPS,永远可用——面板里发送失败时,用它。

终端窗口
curl -H "Authorization: Bearer <你的令牌>" \
"http://192.168.1.10:3000/api/archives?start=0&count=10"
  • 网络错误 / failed to fetch:先看上面三条前置条件。最常见的是 CORS 没开、地址填错,或者那份「 混合内容」的组合。
  • 401:令牌不对,或者令牌没有这个端点的权限。
  • 403:令牌是访客类型的,而这个端点只允许管理员。
  • 404:路径或档案 ID 不对。

在设置页面的令牌管理里创建。面板里的令牌字段只是把它放进 Authorization: Bearer <token> 头,存在你 浏览器的本地存储里,也只会发往你填的那个地址。