Supabase 호환
테이블 엔드포인트는 PostgREST 규격을 따릅니다.
@supabase/supabase-js가 코드 수정 없이 그대로 붙습니다.
이미 Supabase로 짜 둔 코드가 있다면 주소와 키만 바꾸면 됩니다.
연결
import { createClient } from "@supabase/supabase-js";
const gridie = createClient("https://gridie.ai", process.env.GRIDIE_API_KEY);
const { data, error } = await gridie
.from("orders")
.select("id, customer, total")
.eq("status", "paid")
.order("created_at", { ascending: false })
.limit(20);키는 클라이언트가 apikey 헤더로 알아서 실어 보냅니다. 따로 헤더를 붙일 일이 없습니다.
주소에는 오리진만 넣으세요. https://gridie.ai/api/v1처럼 경로가 붙으면 클라이언트가 마지막 조각을 떼고 주소를 조합합니다.
메서드 대응
| 클라이언트 코드 | 실제 요청 |
|---|---|
.select("id, name") | GET ?select=id,name |
.eq("status", "paid") | ?status=eq.paid |
.neq .gt .gte .lt .lte | ?컬럼=연산자.값 |
.like .ilike | ?name=like.김* |
.is("paid_at", null) | ?paid_at=is.null |
.in("status", ["paid", "shipped"]) | ?status=in.(paid,shipped) |
.not("status", "eq", "paid") | ?status=not.eq.paid |
.order("created_at", { ascending: false }) | ?order=created_at.desc |
.limit(20) | ?limit=20 |
.range(0, 19) | ?offset=0&limit=20 |
.single() .maybeSingle() | Accept: application/vnd.pgrst.object+json |
.select("*", { count: "exact" }) | Prefer: count=exact |
.insert(rows) | POST |
.upsert(rows) | POST + Prefer: resolution=merge-duplicates |
.update(values).eq(...) | PATCH ?... |
.delete().eq(...) | DELETE ?... |
.insert(rows).select() | Prefer: return=representation |
다른 언어
Supabase는 여러 언어로 클라이언트를 냅니다. 같은 규격이므로 supabase-py, supabase-flutter 등에서도 주소와 키만 바꾸면 동작합니다.
import os
from supabase import create_client
gridie = create_client("https://gridie.ai", os.environ["GRIDIE_API_KEY"])
rows = gridie.table("orders").select("*").eq("status", "paid").execute()클라이언트를 쓰지 않고 직접 요청을 만들 계획이라면 REST API를 보세요.
Last updated on