[API] 表
能力由 config.toml 中的 [API] 表控制:
false。一个刚安装好的 Arupa 不会暴露这些接口中的任何一个——只有会话相关的接口(/api/login、/api/logout、/api/check-auth)以及两个内核信息接口(GET /api/kernel/version、POST /api/kernel/reload)可以开箱即用,因为它们不受能力开关控制。
启用一个能力
没有任何 HTTP 接口可以用来开关某个能力——如果有,一个已通过身份验证的调用者就能解锁比管理员本意更多的 API。启用一个能力意味着直接编辑config.toml 中的 [API] 表,方式与编辑配置的其他任何部分完全相同。
修改会在下一次配置重新加载时生效。向内核进程发送 SIGHUP,或者调用 POST /api/kernel/reload,都可以在不完全重启的情况下让它生效——这是两个永远不受能力开关限制的接口之一,因此即使所有其他能力都被禁用,它也始终可用。
开关机制如何工作
本章节各页面描述的每一个接口都要求请求已通过身份验证,与其他管理接口完全一样。在此之上,内核会在处理程序运行之前检查该接口所属的能力是否已启用:- 如果该能力被禁用,请求永远不会到达处理程序,内核会返回
404 Not Found; - 如果该能力已启用,请求会正常进入身份验证和处理逻辑。
401 Unauthorized,无论目标能力是否启用。
能力开关与 Route.Allow 或任何其他访问策略是相互独立的。某个能力被启用只意味着它的接口存在;某个已通过身份验证的用户是否可以调用这些接口,仍然由访问控制决定。
响应结构
本章节的每个接口都返回 Arupa 管理 API 通用的信封结构:success/message 字段,success 为 false,并带有相应的 HTTP 状态码,不包含 data。
requires_restart 字段
有些接口会在响应中报告一个requires_restart 布尔字段。凡是只在内核启动时读取一次的设置——监听地址、TLS、服务临时目录、日志级别/格式——都是这样工作的。这个值告诉您刚写入的值是否与正在运行的进程实际生效的值不同,而不是告诉您写入操作本身是否成功。下面每个页面都会说明各自哪些字段属于这种情况。