joplin api

API 文档open in new window, Joplin 官方文档open in new window

简介

Joplin api 的 js 封装,使用 ts 编写,提供完整的类型定义,包含目前所有在文档中公开的 api。

快速启动

config.port = 27583
config.token = '***'
const res = await noteApi.list()
console.log(res)
1
2
3
4

更多示例参考: https://github.com/rxliuli/joplin-utils/tree/master/libs/joplin-api/testopen in new window

API 参考

对象描述
folderApi目录相关 api,例如获取目录树
folderExtApi目录扩展 api,例如移动目录
joplinApijoplin 基础 api,例如检查 joplin web 服务是否打开
noteActionApi笔记相关动作 api,例如在外部编辑器打开笔记
noteApi笔记相关 api,例如获取笔记的内容
noteExtApi笔记扩展 api,例如重命名
resourceActionApi资源动作 api,例如在外部编辑器打开附件资源
resourceApi资源相关 api,例如上传图片
searchApi搜索相关 api
tagApi标签相关 api,例如修改笔记的标签
config全局 joplin web clipper 配置
PageUtil分页相关的静态工具类,例如获取全量笔记列表

约定俗成

  • 使用 class 封装 API,例如 note 相关的 API 被封装在 NoteApi 类中。
  • 同一个功能含义保持统一的命名。例如笔记列表是 NoteApi.list。以下为完整对照表
含义命名示例
列表listnoteApi.list
根据 id 获取getnoteApi.get
创建createnoteApi.create
修改updatenoteApi.update
删除removenoteApi.remove
  • 存在一些特殊情况,例如涉及到多个实体的 api,命名则一般是 操作实体 + by + 依据实体,例如 根据笔记 id 获取标签列表的 api 是 noteApi.tagsById

一些问题

  • get 方法不应该报错,如果不存在应该返回 null 而非抛出异常
  • 缺少常见的 rename/move 函数,而只有更加通用的 update -- 已实现 NoteExtApi/FolderExtApi

其他

两种方式

  1. 全局配置
  2. 生成新的实例
Last Updated: 2021/9/8 下午1:09:07
Contributors: rxliuli