本文档非官方出品,主要由 AI 辅助编写,不保证绝对准确。如有疑问,请以 kernel/api/bazaar.go 中的源码为准。

如果您觉得本文档有帮助,可以考虑赞助支持:爱发电

getUpdatedPackage

获取所有已安装的集市包(插件、挂件、图标、主题、模板)中需要更新的列表。

新手提示: 这个 API 相当于点击了思源笔记设置里的"检查集市包更新"按钮。它会告诉你哪些你已经安装的东西有新版本了,方便你及时更新。

注意:

地址

POST /api/bazaar/getUpdatedPackage

请求体 (JSON)

{
  "frontend": "前端类型"
}

响应体 (JSON)

标准响应体,`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));

在线测试

实际应用案例 / Who Uses This API?

如果你的插件、主题或外部工具使用了这个 API(例如,实现了一个自动检查更新的功能),欢迎提交 Pull Request 将你的项目添加到下方列表!