1 个不稳定版本
0.1.0 | 2021年2月28日 |
---|
#9 在 #notion-api
25KB
454 行
Notion-rs
Notion.so API 的非官方 Rust 实现。该包提供了高质量的、可移植的 API 绑定,作为复杂 notion 集成的基座。
#[async_std::main]
async fn main() {
// Don't commit your token to git!
let token = std::env::var("NOTION_TOKEN_V2").unwrap();
let mut client = notion_rs::builder(token.as_str()).build();
let blocks = client
.get_page("https://www.notion.so/157765353f2c4705bd45474e5ba8b46c")
.await
.unwrap();
println!("{:#?}", blocks);
}
该包提供了查询构建器、基于 reqwest 的客户端,以及将更改写回 Notion.so 的能力。通过内置的对比机制,notion-rs 允许您下载块数据,就地修改,并将更改提交回 notion 数据库。
该包可以与或不与 reqwest
客户端一起使用,如果您想使用替代的 HTTP 客户端或不想将两个客户端版本捆绑在一起。对于这些用例,我们提供了一个可以与 surf 和 reqwest 集成的查询构建器。
因此,该包在 WASM 环境中工作,并可以与 WASM 网页框架愉快地运行。请注意,底层方法调用是异步的,所以您需要提供自己的异步运行时或使用自己的同步网页客户端。
Typescript 绑定
除了 Rust 客户端,我们还通过 WASM 绑定提供了一个 Typescript 客户端。如果您需要原生绑定,则该包将无法使用。WASM 二进制文件已被精简以更加轻量,但仍会比真正的 Typescript 原生绑定大。
Typescript
let client = new NotionClient(token_v2);
let page = client.getPage("https://www.notion.so/157765353f2c4705bd45474e5ba8b46c");
for (const block of page.blocks) {
console.log(block.title);
}
支持
当前支持如下
块 | 读取 | 写入 |
---|---|---|
标题 | ☑️ | |
副标题 | ☑️ | |
次副标题 | ☑️ | |
引用 | ☑️ | |
代码 | ☑️ | |
待办事项 | ☑️ | |
书签 | ☑️ | |
项目符号列表 | ☑️ | |
图片 | ☑️ | |
分隔符 | ☑️ | |
目录 | ☑️ | |
面包屑 | ☑️ | |
页面 | ☑️ | |
数字列表 | ☑️ | |
文本 | ☑️ | |
方程式 | ☑️ | |
切换 | ☑️ | |
呼出 | ☑️ | |
工厂 | ☑️ | |
集合 | 🛠 |
☑️ = 完全支持
🛠 = 部分支持
依赖关系
~2–14MB
~178K SLoC