KnowSphere 主题 API 速览
三种访问方式
| 使用场景 | 方式 | 身份 |
|---|---|---|
| Thymeleaf 服务端渲染 | knowSphereFinder | 继承当前请求身份 |
| 公开展示、内容预览 | /apis/api.knowsphere.webjing.com/v1alpha1 | 按端点规则可匿名 |
| 我的订单、钱包、签到及建单 | /apis/uc.api.knowsphere.webjing.com/v1alpha1 | 当前登录用户 |
控制台接口和 Extension CRUD 不用于匿名主题。不能将管理员 Token 或支付密钥写入主题脚本。
Finder 返回形状
<th:block th:with="info=${knowSphereFinder.getPluginInfo()}"></th:block>
<th:block th:with="member=${knowSphereFinder.getMembershipStatus().block()}"></th:block>
<th:block th:with="plans=${knowSphereFinder.listMembershipPlans().collectList().block()}"></th:block>
<th:block th:with="orders=${knowSphereFinder.listMyOrders(1, 10).block()}">
<article th:if="${orders != null}" th:each="order : ${orders.items}">
<span th:text="${order.orderNo}"></span>
</article>
</th:block>
接口方法与字段以 Finder 参考 为准。用户标识、资源名称和 slug 不是同一个值。
浏览器请求
async function loadMyOrders() {
const response = await fetch(
'/apis/uc.api.knowsphere.webjing.com/v1alpha1/orders?page=1&size=10',
{ credentials: 'same-origin', headers: { Accept: 'application/json' } }
);
if (response.status === 401) return { state: 'login-required' };
if (response.status === 403) return { state: 'forbidden' };
if (response.redirected || !response.headers.get('content-type')?.includes('json')) {
throw new Error('需要登录或接口未返回 JSON');
}
if (!response.ok) throw new Error(`读取失败:${response.status}`);
return { state: 'ready', data: await response.json() };
}
公开访问检查使用 GET /access/-/check?type=post&name=<metadata.name>,不是旧示例里的 /apis/api.webjing.com/...。预览使用 GET /paywall/-/target-preview。请求参数应用 URLSearchParams 编码。
评论访问凭证不能靠邮箱补签;应使用插件评论组件,凭证由实际成功创建评论的响应绑定到当前浏览器。