notionrs

Crates.ionotionrs
lib.rsnotionrs
version1.0.0-alpha.21
sourcesrc
created_at2024-10-22 19:22:04.968679
updated_at2024-12-12 11:16:20.024076
descriptionA Notion API client that provides type-safe request serialization and response deserialization
homepage
repositoryhttps://github.com/46ki75/notionrs
max_upload_size
id1419149
size757,087
shirayuki (46ki75)

documentation

https://docs.rs/notionrs

README

Notion API Client for Rust

Unit Test Check Documentation Build Crates.io

ogp

Status: Alpha Release! (Under Construction) 🚧

This project is currently under active development and is not yet ready for production use. Features and API stability may change without notice. Contributions and feedback are welcome!

Features currently released

As part of the alpha release, the following features are available. Please note that API changes may occur before the official release.

  • Blocks
    • Append block children
    • Retrieve a block
    • Retrieve block children
    • Update a block
    • Delete a block
  • Databases
    • Create a database
    • Query a database
    • Retrieve a database
    • Update a database
  • Pages
    • Create a page
    • Retrieve a page property item
    • Retrieve a page
    • Update page properties
  • Users
    • List all users
    • Retrieve a user
    • Retrieve your token's bot user
  • Search
    • Search by title

Basic Usage

Below is a basic example. (More detailed documentation is coming soon, so please stay tuned!)

use notionrs::{
    block::{Block, ParagraphBlock},
    error::Error,
    Client, RichText,
};

#[tokio::main]
async fn main() -> Result<(), Error> {
    dotenvy::dotenv().ok();

    let client = Client::new();

    // Here, we're retrieving the ID from an environment variable,
    // but you can change the method of retrieval to suit your needs.
    let block_id = std::env::var("NOTION_PAGE_ID").unwrap();

    let block = Block::Paragraph {
        paragraph: ParagraphBlock::new()
            .rich_text(vec![RichText::from("Time to start with Notion in Rust")]),
    };

    let request = client
        .append_block_children()
        .block_id(block_id.clone())
        .children(vec![block]);

    let response = request.send().await?;

    println!("{:?}", response);

    Ok(())
}
Commit count: 667

cargo fmt