Notion API エンドポイント全て使ってみる「Blocks」編
はじめに
ここ最近 Notion API を利用した開発を行っており、備忘録も兼ねてBlock
周りのエンドポイントについて
基本的な使い方をまとめてみました。
対象
- Notion API を普段から利用している方
- Notion API の詳細が気になるけど調べるのが面倒な方
- Notion API でどんな機能があるのか気になる方
概要
Notion API では様々なエンドポイントが用意されています。
その中でも今回は「Blocks
」に関する機能にフォーカスを当てまとめていきます。
※APIの実行はPostman経由で行います。
Notion API とは
Notion API は、Notion プラットフォームでのデータの読み取り、作成、更新、削除を行うための公式のプログラムインターフェースです。
Notion のデータを外部アプリケーションやスクリプトと連携させることが可能になります。
詳細情報については、公式の Notion API ドキュメントを参照してください。
Blocksで用意されているエンドポイント
Blocks
は、Notion上のテキスト、画像、リスト、コードブロックなどといった小さい単位を扱うことができるエンドポイントをいくつか用意してくれています。
以降はそれぞれのエンドポイントに関する概要と
Notion上の画面を合わせながらまとめていきます。
Append block children
このエンドポイントを使用すると、指定された親ブロックの子ブロックとして新しいブロックを追加することができます。テキスト、画像、リスト、コードブロックなど、さまざまなタイプのブロックを作成できます。
リクエスト例
更新前の Page Block
POST /v1/blocks/{parent_block_id}/children
Content-Type: application/json
{
"children": [
{
"paragraph": {
"rich_text": [
{
"text": {
"content": "Blocksの動作確認"
}
}
]
}
}
]
}
更新後の Page Block
Retrieve a block
このエンドポイントを使用すると、指定されたブロックの詳細情報を取得できます。ブロックのタイプ、コンテンツ、親ブロックなどの情報が含まれます。
リクエスト例
GET /v1/blocks/{block_id}
Retrieve block children
このエンドポイントを使用すると、指定された親ブロックの子ブロックの一覧を取得できます。子ブロックのタイプやコンテンツなどの情報が含まれます。
リクエスト例
GET /v1/blocks/{parent_block_id}/children
Update a block
このエンドポイントを使用すると、指定されたブロックの内容を更新することができます。テキストブロックの内容を変更したり、リンクを追加したりすることができます。
リクエスト例
更新前の Page Block
PATCH /v1/blocks/{block_id}
Content-Type: application/json
{
"paragraph": {
"rich_text": [
{
"text": {
"content": "更新されたBlock"
},
"annotations": {
"color": "green"
}
}
]
}
}
更新後の Page Block
Delete a block
このエンドポイントを使用すると、指定されたブロックを削除することができます。削除したいブロックのIDを指定するだけで、ブロックを削除することができます。
リクエスト例
DELETE /v1/blocks/{block_id}
さいごに
今回はBlocks
のエンドポイントについてまとめていきました。
Notion上のコンテンツを柔軟に管理することができ
Blocks
エンドポイントは非常に便利な機能です。
Slackや普段利用するサービスと連携することで
特に効果を発揮しそうな気がしますね。
他プロパティに関する追加や更新に関する仕様についても
詳しくみていければと思います。
Discussion