アプリを開発する際、データの保存にはデータベースが必要です。クラウド上のデータベースはどこからでもアクセスでき便利ですが、多くは有料です。しかし、実は無料で使えるデータベースがあります。それがNotionです。
Notionはメモやノートを記録するための媒体としても使えますが、APIを通じてデータベースとしても利用できます。これにより、普通のアプリからNotionのデータベースにアクセスし、データの保存や取得が可能になります。私自身もアプリ開発の際、Notionのデータベースを利用し、コストを削減しています。
ただし、Notionは元々アプリのバックエンドのデータベースとしては想定されていないと思われるため、使い勝手には注意が必要です。特に、SQLのような一般的なデータベースとは異なるAPI仕様に慣れる必要があります。
そこで、この記事では使い方のコツをまとめ、実際の利用例も紹介したいと思います。
使い方のコツ
- APIの仕様に注意: Notion独自のAPI仕様に従って書かないといけません。公式のSDKが提供されてますが、結構使い勝手に苦戦することが多いのが注意点です。自分の場合は使いやすいラッパーを自作して使うようにしています。
- アクセス頻度の制限: APIアクセスの頻度は1秒間に3回までと制限されています。個人用のアプリであればおよそ十分な頻度でしょうが、複数のユーザーが利用する場合は注意が必要です。
- データのサイズ制限: テキストデータのカラムに挿入するデータは上限が1000文字です。長い情報は本文に移す必要があります。ただし、本文もブロックという単位で構成されていて、1ブロックの文字数の上限が2000文字となっています。そのため、長い文字列データを保存する場合は2000文字以内のブロックに区切って格納するといった一手間が必要です。
- 画像の扱い: API経由では画像のアップロードができません。別のクラウドストレージにアップロードし、そのURLをNotionに渡す必要があります。
具体的な活用方法
私の自作ツールでどのようにNotionをデータベースとして利用しているかを紹介します。
AI生成画像の管理
AIによって生成性した画像について、生成時のプロンプトやパラメータとともに画像をデータベースに保存し、検索できるようにしています。
音声認識の文字起こしの保存
ボイスレコーダーアプリで録音した音声を自動的に文字起こしして、その文章をNotionに保存しています。
ボイスレコーダーは自動でクラウドストレージに音声をアップロードする機能を持っている「簡単ボイスレコーダー」を利用しています。音声のアップロードをトリガーとしてwhisperによる文字起こしを実行してその結果をNotionに保存するというスクリプトを組んでいます。
コメント