本日、NotionAPIでselectプロパティ、multi_selectプロパティへ選択肢を動的に新規追加できるようなったとアナウンスがあったので早速試してみました。
先に結論です。
selectプロパティ、multi_selectプロパティともに、
これまでは、送信した選択肢の登録がない場合にエラーとなっていました。
これからは、エラーとはならず、選択肢を新規追加しつつ成功するようなりました。
送信データは変わっていません。単純に便利になった感じです。
では試していきます。
テスト用のデータベーステーブルの作成

selectプロパティへ動的に選択肢を新規追加

いい感じです。今まではこれがエラーになっていました。
送信データはこんな感じ。
同じAPIをもう一度呼んでもエラーになることはありません。
{
"properties": {
"セレクト": {
"select": {
"name": "追加オプション1" // 新規追加
}
}
}
}
multi_selectプロパティへ動的に選択肢を新規追加

送信データはこんな感じ。同じく今まではこれがエラーになっていました。
同じAPIをもう一度呼んでもエラーになることはありません。
{
"properties": {
"マルチセレクト": {
"multi_select": [
{
"name": "追加オプション1"// 新規追加
},
{
"name": "追加オプション2"// 新規追加
}
]
}
}
}
すでに登録されている選択肢(↑で動的追加したもの)を選んで更新(レコード2)

送信データ
{
"properties": {
"セレクト": {
"select": {
"name": "追加オプション1" // 既存
}
},
"マルチセレクト": {
"multi_select": [
{
"name": "追加オプション1" // 既存
},
{
"name": "追加オプション2" // 既存
}
]
}
}
}
multi_selectプロパティへ動的に選択肢を新規追加しつつ、すでに登録されている選択肢(↑で動的追加したもの)を選んで更新(レコード3)
※selectは選択肢1つなので、既存のものがあればそれを選択、なければ新規登録となります。

送信データ
{
"properties": {
"マルチセレクト": {
"multi_select": [
{
"name": "追加オプション1" // 既存
},
{
"name": "追加オプション2" // 既存
},
{
"name": "追加オプション3" // 新規追加
}
]
}
}
}
想定通り動いていました。
便利になってありがたいかぎりです。
公式のChangelogです。

これがあれば、来期アニメアプリの「タグ付け機能」で、
既存の選択肢だけでなく、ユーザーが新しいタグを追加できるように実装できそうです。

本記事が参考になったなら、
バックエンドをNotionAPI+Notionで実装している「来期アニメ」アプリをぜひインストールしてお試しください。
iOS版

Android版
以上
コメント