#notion-api #notion #api #api-client

simple-notion

使用 NotionAPI 以只读方式读取 Notion 数据库的简单库

2 个版本

0.1.1 2023 年 4 月 16 日
0.1.0 2023 年 4 月 14 日

#notion 中排名 1

每月下载 22

MIT 许可证

30KB
679

Simple Notion

使用 NotionAPI 读取 Notion 数据库的简单库。

免责声明

请注意,此库不是由 Notion 团队官方支持的。

功能

  • 读取数据库

入门

API 客户端

要开始,您需要通过 NotionClient 获取对 API 的访问权限。

let mut client = crate::client::NotionClient::default();

// Added the full URL of the database page:
client.set_url("https://www.notion.so/user-name/data-base-id?v=other");

// And you need to pass your integration token
client.set_token("integration-token");

获取数据库

现在您有了访问权限,需要下载数据库。

// Get the Raw Json data-base
let data_base = client.get_table_sync().unwrap();

解析数据库

您将每个元素转换为名为 DataType 的枚举。为此,您需要 NotionResponseParser。

// Take the data_base as input
let parser = crate::parser::NotionResponseParser::new(data_base);

让我们简化一下

现在您已经有了数据库和解析器。因此,您可以创建一个 NotionDataBase。

let data_table = crate::notion_data_base::NotionDataBase::new(parser.parse_table());

访问元素

太棒了!您已经完成了设置,让我们来使用它。

// Getting the element.
let element = parser.parse_element(data_table.get(&parser, "MyLineTitle", "MyColumnName").unwrap().1);

// Priting the result
println!("My Element: {:?}", element);

一些其他有用的函数

// Get the Vec<String> of all lines titles
data_table.get_line_list(&parser);

// Get the Vec<String> of all columns names
data_table.get_column_list(&parser);

// Parse the full data-base to a Vec<Vec<DataType>>
data_table.get_all(&parser)

依赖关系

~13–25MB
~427K SLoC