Supabase の Data API と Edge Functions
Supabase の Data API と Edge Functions をめぐる設計議論 ーーー 設計思想とセキュリティ設計を読み解く --- はじめに Supabase を使った Web アプリ設計では、便利さの反面、どこまでをフロントに公開するか という設計判断が必ず発生する。 ただし、この議論は最初から結論だ...
Supabase の Data API と Edge Functions をめぐる設計議論 ーーー 設計思想とセキュリティ設計を読み解く --- はじめに Supabase を使った Web アプリ設計では、便利さの反面、どこまでをフロントに公開するか という設計判断が必ず発生する。 ただし、この議論は最初から結論だけを述べても伝わりにくい。 なぜなら、途中で頻繁に出てくる API、REST、Edge Function という言葉自体が、人によって前提の意味がずれているからである。 そこで本稿では、 まず言葉の定義を固める その定義に基づいて Supabase の各仕組みを整理する 最後にセキュリティ設計上の結論を出す という順番でまとめる。 --- この議論について 先に結論を置かない。 特に API や REST という言葉を先に使ってしまうと、定義が固まる前に議論だけが進み、何を前提に話しているのかが曖昧になるからである。 したがって、 API とは何か REST とは何か Supabase Edge Function とは何か Supabase Data API とは何か を先に整理し、そのあとで Data API と Edge Functions の設計差を議論する。 --- まず言葉の定義を固める API とは何か Human: API とは何か。定義が曖昧なまま進めると、話がずれるのではないか。 AI: その通りである。 まず API は、あるソフトウェアの機能を、別のソフトウェアが決められた方法で利用するための外部仕様・接点として整理した。 この時点で重要なのは、 API は URL そのものではない API はサーバーコードそのものでもない API は外から使うためのインターフェースである という点である。 --- REST とは何か Human: REST の定義も曖昧で、一般的な HTTP API と何が違うのかがわかりにくい。 AI: REST については、HTTP で呼べれば REST というわけではない ことを確認した。 REST は、Ro...