本題
データベースオブジェクトが 親プロパティを持つようになった。親ページの ID が parent という属性に入るので、そこからさらに参照することが可能となる。
検証
試しにこのページ自体を取得して確認してみる。
#!/bin/sh curl -X POST 'https://api.notion.com/v1/search' \ -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \ -H 'Content-Type: application/json' \ -H "Notion-Version: 2021-08-16" \ --data '{ "query":"親プロパティ", "sort":{ "direction":"ascending", "timestamp":"last_edited_time" } }'
結果はこんな感じ。parent という属性をみると、type が "database_id" となっており親がデータベースオブジェクトであることがわかる。そして、database_id にはそのデータベースの ID が記録されている。
{ "object": "list", "results": [ { "object": "page", "id": "069987ff-6083-4920-9613-9f464765f11c", "created_time": "2021-11-10T00:00:00.000Z", "last_edited_time": "2021-11-10T00:09:00.000Z", "cover": null, "icon": null, "parent": { "type": "database_id", "database_id": "c63c00ad-201d-4bed-82b0-18dfca9b6ba0" }, "archived": false, "properties": { "日付": { "id": "%3CWbe", "type": "date", "date": { "start": "2021-07-13", "end": null } }, "原題": { "id": "%3FMR%7D", "type": "rich_text", "rich_text": [ { "type": "text", "text": { "content": "Database objects now return parent", "link": null }, "annotations": { "bold": false, "italic": false, "strikethrough": false, "underline": false, "code": false, "color": "default" }, "plain_text": "Database objects now return parent", "href": null } ] }, "URL": { "id": "o%3A~F", "type": "url", "url": "https://developers.notion.com/changelog/database-objects-now-return-parent" }, "タグ": { "id": "tUJV", "type": "multi_select", "multi_select": [ { "id": "05f3b6b1-b6f1-49a2-bbdb-955cfb4d36f4", "name": "IMPROVED", "color": "gray" } ] }, "名前": { "id": "title", "type": "title", "title": [ { "type": "text", "text": { "content": "データベースオブジェクトが親プロパティを返すようになった", "link": null }, "annotations": { "bold": false, "italic": false, "strikethrough": false, "underline": false, "code": false, "color": "default" }, "plain_text": "データベースオブジェクトが親プロパティを返すようになった", "href": null } ] } }, "url": "https://www.notion.so/069987ff6083492096139f464765f11c" } ], "next_cursor": null, "has_more": false }
その他の改善と修正
- インラインデータベースのメンションが rich_text mention 応答に含まれるようになった。
- インテグレーションが ページやデータベースメンションにアクセスできない場合、ID は返却されるが、それ以外の詳細は返却されなくなる。タイトルは「Untitled」となり、注釈はデフォルト値が設定される。
- 親がデータベースで、内部のページのみインテグレーションに許可されている時でも、プロパティ値は更新できるようになった。ただし、Select や Multi-Select の場合は既定値のみしか設定できない。すなわち新規の値の追加はできない。これは、親のデータベースに依存するためだと思われる。
Notion API Changelog まとめ