Skip to content

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

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

获取集市插件列表

端点

/api/bazaar/getBazaarPlugin

源文件 (GitHub)

接口描述

此 API 端点用于从思源笔记官方集市获取可用的插件列表。支持按关键词搜索和按前端类型筛选。

认证与授权

此接口需要满足以下条件才能访问:

  1. 用户认证 (model.CheckAuth): 需要有效的用户认证,并通过 Authorization HTTP 头部传递 API Token

请求方法

POST

请求参数

请求体应为 JSON 格式,包含以下字段:

参数名类型必需描述
frontendstring前端类型,可选值: "desktop"(桌面端) 或 "mobile"(移动端)。用于筛选兼容的插件
keywordstring搜索关键词,用于在插件名称、描述、作者中进行模糊匹配。为空时返回所有插件

返回值

参数名类型描述
codenumber返回码。0: 成功; -1: 服务器错误
msgstring返回信息。失败时包含错误信息
dataobject返回数据

data 字段内容:

参数名类型描述
packagesobject[]插件包信息数组。每个包包含以下字段:

packages 数组中每个对象的字段:

参数名类型描述
namestring包名
authorstring作者
versionstring版本号
displayNamestring显示名称
descriptionstring描述
repoURLstring仓库地址
repoHashstring仓库哈希
iconURLstring图标地址
fundingobject赞助信息(可选)
installedboolean是否已安装
hasUpdateboolean是否有更新

示例

请求示例 (获取所有桌面端插件)

json
POST /api/bazaar/getBazaarPlugin
Content-Type: application/json
Authorization: Token your-token

{
  "frontend": "desktop",
  "keyword": ""
}

请求示例 (搜索特定插件)

json
POST /api/bazaar/getBazaarPlugin
Content-Type: application/json
Authorization: Token your-token

{
  "frontend": "desktop",
  "keyword": "enhance"
}

返回示例 (成功)

json
{
  "code": 0,
  "msg": "",
  "data": {
    "packages": [
      {
        "name": "siyuan-plugin-sync-provider",
        "author": "Vanessa",
        "version": "0.1.0",
        "displayName": "同步服务提供", 
        "description": "提供 S3、WebDAV 同步支持。",
        "repoURL": "https://github.com/siyuan-note/plugin-sync-provider",
        "repoHash": "abcdef1234567890",
        "iconURL": "icon.png",
        "funding": {},
        "installed": true,
        "hasUpdate": false
      }
      // ... more packages
    ]
  }
}

返回示例 (失败)

json
{
  "code": -1,
  "msg": "获取插件列表失败",
  "data": null
}

错误码说明

错误码说明
0成功
-1服务器错误

备注

  • 返回的插件列表会根据用户当前安装状态显示 installedhasUpdate 标记
  • 建议在获取插件列表时指定正确的前端类型,以避免获取到不兼容的插件
  • 搜索是模糊匹配,会在插件名称、描述、作者等字段中查找关键词
  • 如果要获取已安装的插件列表,请使用 /api/bazaar/getInstalledPlugin 接口