NotionAPIを使ったRelationプロパティへのデータ登録と取得、Rollupプロパティのデータ取得方法

Notion APIで、Relationプロパティへのデータ登録と取得、Rollupプロパティのデータ取得をやりたくて調べたメモです。

前提

Notionで、データベース、Relation、Rollupを作る工程は省略します。
ググるとたくさん出てくるのでそちらをご覧ください。

Relationする側、される側、それぞれのデータベースは、それぞれでAPIのIntegrationを招待しておく必要があります。

Relationプロパティへのデータ登録

・エンドポイント、ヘッダ

{SECRET_KEY}の部分は、ご自分の環境のシークレットキーを入れてください。
その際、{}ごと差し替えることに注意してください。
◯Bearer secret_XXXXXXXXXXXX
×Bearer {secret_XXXXXXXXXXXX}

スクリーンショット 2021-06-01 21.17.52

・送信データ(全文)

“Column”がRelationプロパティです。
Relationデータを登録するときは、Relation対象のデータベース(テーブル)のページID(レコード)をJSONオブジェクト形式で複数指定することができます。
ページIDは、ハイフンをつけたUUIDv4形式で入れることに注意してください。DATABASE_IDは、ハイフンなしでもいけるようですが、ページIDは違うようでハイフンがないと動きませんでした。

 "parent": {
   "database_id": "{DATABASE_ID}"
 },
 "properties": {
   "name": {
     "title": [
       {
         "text": {
           "content": "+"
         }
       }
     ]
   },
   "count": {
     "number": 1
   },
   # ここからRelationプロパティへのデータ登録
   "Column": {
     "relation": [
       {
         "id": "d2e3b93c-db87-4353-8d58-b4f80c82c9b2"
       }
     ]
   }
   # ここまでRelationプロパティへのデータ登録
 }
}

・受信データ(抜粋)

IDがついて登録結果が返ってきます。

"Column": {
     "id": "if`\",
     "type": "relation",
     "relation": [
       {
         "id": "d2e3b93c-db87-4353-8d58-b4f80c82c9b2"
         }
     ],
},

Relationプロパティ、Rollupプロパティのデータ取得

・エンドポイント、ヘッダ

スクリーンショット 2021-06-01 21.35.24

・送信データ

なし

・受信データ(抜粋)/Relationデータ

登録時と同じフォーマットで取得できます。
Relation対象が複数ある場合は配列の要素数が増えます。
Rollupデータを取得する場合、受信データサイズ減らすためにこのRelationデータは不要としたいのですが、プロパティ指定でページ情報を取得する方法がわからないので出来ません。今後の課題です。
誰かご存知でしたら教えて欲しいです。

 "Related to 来期アニメふぁぼ (Column)": {
    "id": "ZkP",
    "type": "relation",
    "relation": [
     {
        "id": "d282a61c-e5ee-477a-8739-40fb353879c8"
        }
    ],
},

・受信データ(抜粋)/Rollupデータ

こんな感じで結果が返ります。
CALCULATEは「Sum」で設定しています。まぁ予想通りです。

"count_total": {
    "id": "Fl~|",
    "type": "rollup",
    "rollup": {
        "type": "number",
        "number": 3
    }
},

間違いなどありましたら教えていただけると助かります。

◆参考にしたページ

Start building with the Notion API
Connect Notion pages and databases to the tools you use every day, creating powerful workflows.
Start building with the Notion API
Connect Notion pages and databases to the tools you use every day, creating powerful workflows.

◆自作アプリ

コメント

タイトルとURLをコピーしました