本文档非官方出品,主要由 AI 辅助编写,不保证绝对准确。如有疑问,请以 kernel/api/bazaar.go 中的源码为准。
如果您觉得本文档有帮助,可以考虑赞助支持:爱发电
获取所有已安装的集市包(插件、挂件、图标、主题、模板)中需要更新的列表。
新手提示: 这个 API 相当于点击了思源笔记设置里的"检查集市包更新"按钮。它会告诉你哪些你已经安装的东西有新版本了,方便你及时更新。
注意:
batchUpdatePackage
来刷新本地的集市信息。建议在调用此 API 前先调用 batchUpdatePackage
。POST /api/bazaar/getUpdatedPackage
{
"frontend": "前端类型"
}
frontend
: (string
) 必填。指定要检查哪个前端平台的更新,通常是 "desktop"
或 "mobile"
。标准响应体,`data` 字段是一个对象,包含了各类需要更新的包列表。
{
"code": 0,
"msg": "",
"data": {
"plugins": [
// 需要更新的插件包对象数组...
// 每个对象结构类似 getInstalledPlugin 返回的,但可能包含最新版本信息
],
"widgets": [
// 需要更新的挂件包对象数组...
],
"icons": [
// 需要更新的图标包对象数组...
],
"themes": [
// 需要更新的主题包对象数组...
],
"templates": [
// 需要更新的模板包对象数组...
]
}
}
注意:
// 检查桌面端有哪些集市包需要更新
fetch('/api/bazaar/getUpdatedPackage', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Token YOUR_API_TOKEN' // 替换为你的 API Token
},
body: JSON.stringify({ frontend: "desktop" })
})
.then(response => response.json())
.then(data => {
if (data.code === 0) {
console.log('获取需要更新的包列表成功:', data.data);
const updates = data.data;
if (updates.plugins.length > 0) {
console.log(`有 ${updates.plugins.length} 个插件需要更新`);
// 处理插件更新提示
}
if (updates.themes.length > 0) {
console.log(`有 ${updates.themes.length} 个主题需要更新`);
// 处理主题更新提示
}
// ... 检查其他类型的包 ...
if (updates.plugins.length === 0 && updates.widgets.length === 0 && updates.icons.length === 0 && updates.themes.length === 0 && updates.templates.length === 0) {
console.log("所有已安装的集市包都已是最新版本!");
}
} else {
console.error('获取需要更新的包列表失败:', data.msg);
}
})
.catch(error => console.error('请求错误:', error));
如果你的插件、主题或外部工具使用了这个 API(例如,实现了一个自动检查更新的功能),欢迎提交 Pull Request 将你的项目添加到下方列表!