Pular para o conteúdo
🔌 API REST

PostgREST automático.

API REST gerada a partir do seu schema. SELECT, INSERT, UPDATE, DELETE, filtros, joins. Sem escrever endpoint.

URL base

endpoint
https://api.superdb.com.br/v1/{projeto}/rest/{tabela}

Autenticação

Toda requisição precisa de 2 headers:

headers
apikey: sua-anon-key
Authorization: Bearer jwt-do-usuario-logado
💡

Dica: RLS é respeitado automaticamente. Usuário só lê o que suas políticas permitem.

SELECT

curl
# Todos os registros
curl https://api.superdb.com.br/v1/meuapp/rest/tasks \
  -H "apikey: $ANON_KEY" \
  -H "Authorization: Bearer $JWT"

# Filtro: tarefas não concluídas
curl "https://api.superdb.com.br/v1/meuapp/rest/tasks?done=eq.false" \
  -H "apikey: $ANON_KEY" -H "Authorization: Bearer $JWT"

# Selecionar colunas
curl "https://api.superdb.com.br/v1/meuapp/rest/tasks?select=id,title" \
  -H "apikey: $ANON_KEY" -H "Authorization: Bearer $JWT"

# Ordem + paginação
curl "https://api.superdb.com.br/v1/meuapp/rest/tasks?order=created_at.desc&limit=10" \
  -H "apikey: $ANON_KEY" -H "Authorization: Bearer $JWT"

Operadores de filtro

Use no formato ?coluna=op.valor. Operadores principais:

  • eq — igual: ?done=eq.true
  • neq — diferente: ?status=neq.deleted
  • gt, gte, lt, lte — comparações: ?age=gt.18
  • like, ilike — pattern matching: ?name=ilike.*silva*
  • is — NULL/TRUE: ?deleted_at=is.null
  • in — lista: ?status=in.(active,pending)

INSERT

curl
curl -X POST https://api.superdb.com.br/v1/meuapp/rest/tasks \
  -H "apikey: $ANON_KEY" -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -H "Prefer: return=representation" \
  -d '{"title": "Nova tarefa", "done": false}'

UPDATE

curl
curl -X PATCH "https://api.superdb.com.br/v1/meuapp/rest/tasks?id=eq.UUID" \
  -H "apikey: $ANON_KEY" -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{"done": true}'

DELETE

curl
curl -X DELETE "https://api.superdb.com.br/v1/meuapp/rest/tasks?id=eq.UUID" \
  -H "apikey: $ANON_KEY" -H "Authorization: Bearer $JWT"

Joins automáticos

PostgREST detecta foreign keys e permite joins por sintaxe tabela(colunas):

curl
curl "https://api.superdb.com.br/v1/meuapp/rest/tasks?select=*,user:users(name,email)" \
  -H "apikey: $ANON_KEY" -H "Authorization: Bearer $JWT"

Preview no Studio

Toda chamada REST roda como SQL embaixo. Você pode espiar no Studio:

superdb.com.br/dash/meuapp/api-logs
v0.4.2
GET /tasks?done=eq.false ×
1-- traduzido pelo PostgREST
2select * from proj_meuapp.tasks
3 where done = false
4 and user_id = auth.uid();

Limites

  • Máximo de 1.000 registros por request por padrão
  • Use limit e offset pra paginar
  • Use Range header pra range requests
💡

Dica: Para queries tipadas, use @supabase/supabase-js apontando para https://api.superdb.com.br (sem /rest/v1/) — ele monta as URLs PostgREST automaticamente. @superdb/auth-js e @superdb/supabase-compat são apenas para auth — .from() nesses pacotes retorna not_implemented.

Essa página ajudou?