notion_api 1.0.0-beta1 notion_api: ^1.0.0-beta1 copied to clipboard
A wrapper for public beta of the Notion API to manage like a Notion SDK for dart.
Content
Initialization #
Full instance #
You only have to create a new instance of the NotionClient
class and all the API requests will be available as class methods.
NotionClient notion = NotionClient(token: 'YOUR SECRET TOKEN FROM INTEGRATIONS PAGE');
Individual classes #
You can also use individual request group class like NotionPagesClient
or NotionDatabasesClient
. They are used like the main client but the methods are class methods instead of class properties methods.
Example
// With main class
NotionClient notion = NotionClient(token: 'YOUR_TOKEN');
notion.databases.fetchAll();
// With individual class
NotionDatabasesClient databases = NotionDatabasesClient(token: 'YOUR_TOKEN');
databases.fetchAll();
Pages #
Creating pages #
Page page = Page(
databaseId: 'YOUR DATABASE ID',
title: 'The title of the new page',
);
notion.pages.create(page);
Retrieving pages #
notion.pages.fetch('YOUR_PAGE_ID');
Databases #
Retrieving a database #
notion.databases.fetch('YOUR_DATABASE_ID');
Retrieving all databases #
Warning: This endpoint is not recommended by the Notion team.
Parameters:
- startCursor: If supplied, this endpoint will return a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results.
- pageSize: The number of items from the full list desired in the response. Maximum: 100, otherwise will be ignored.
notion.databases.fetchAll();
Block children #
Retrieving block children #
notion.blocks.fetch('YOUR_BLOCK_ID');
Append block children #
Parameters:
- to: Identifier for a block.
- children: Child content to append to a container block as an array of block objects.
- Can receive a
Paragraph
,Heading
&ToDo
object. - The
Paragraph
object can contain onlyText
objects. Text
can receive aTextAnnotations
class with the style of the text.
- Can receive a
Example #
Heading & Paragraph
Code
notion.blocks.append(
to: 'YOUR_BLOCK_ID',
children: Children(
heading: Heading('Test'),
paragraph: Paragraph(
content: [
Text('Lorem ipsum (A)'),
Text(
'Lorem ipsum (B)',
annotations: TextAnnotations(
bold: true,
underline: true,
color: ColorsTypes.orange,
),
),
],
),
),
);
Result
To do
Code
notion.blocks.append(
to: 'YOUR_BLOCK_ID',
children: Children(
toDo: [
ToDo(text: Text('This is a todo item A')),
ToDo(
content: Paragraph(
content: [
Text('This is a todo item'),
Text(
'B',
annotations: TextAnnotations(bold: true),
),
],
),
),
],
),
);