Ver categorias

Como expor um banco de dados PostgreSQL como uma API REST segura

11 minutos de leitura

Logotipo do PostgreSQL PostgreSQL API REST

Transforme uma consulta PostgreSQL em uma consulta segura. API REST — Sem PostgREST, não há servidor para hospedar.

Salve uma consulta SQL em seu banco de dados Postgres, gere uma chave de API para cada destinatário e forneça a um parceiro um endpoint JSON ativo. Sem abertura. 5432 porta, sem credenciais compartilhadas, sem serviço Express para compilar e corrigir — apenas uma porta governada e somente leitura. API REST do Postgres Em minutos.

Sem portas de entrada Chaves por destinatário Somente leitura obrigatória Nada para implantar

O Query Streams é uma plataforma segura de integração de banco de dados em tempo real que transforma qualquer consulta PostgreSQL salva em um endpoint de API REST pronto para uso por parceiros — com chaves por destinatário, imposição de somente leitura e um registro de auditoria completo. Você recebe um ao vivo API REST do Postgres Sem abrir uma porta de banco de dados, compartilhar credenciais ou hospedar um gateway. Saiba mais em QueryStreams.com e inscreva-se gratuitamente Publique seu primeiro endpoint PostgreSQL em minutos.

Por que expor um banco de dados PostgreSQL como uma API REST?

Cedo ou tarde, alguém fora da sua equipe precisará de dados armazenados no PostgreSQL — um cliente quer seus números em um painel, um fornecedor quer um feed em tempo real em vez de um CSV diário, o aplicativo de um parceiro precisa ler uma parte das suas tabelas. As soluções comuns acabam expondo algo que você preferiria manter em segredo: você envia por e-mail exportações que já estão desatualizadas assim que chegam, você entrega um arquivo somente leitura. psql Um sistema de login que sobrevive ao contrato, ou você cria um pequeno serviço e herda sua autenticação, TLS e atualizações para sempre. API REST do PostgreSQL Esta é a versão simplificada disso — o parceiro recebe uma URL e um token, não o seu banco de dados. A dificuldade sempre foi construir e operar essa API com segurança. O Query Streams transforma isso em uma consulta salva e uma chave.

Nenhuma porta Postgres aberta

Você nunca expõe 5432 para a internet ou abra uma brecha no seu firewall. O Agente de Rede disca; as chamadas recebidas retornam por essa única conexão de saída.

Chaves de API por destinatário

Cada destinatário recebe o seu próprio. qsapi_* chave. Revogue uma sem afetar as outras e sem alterar sua senha do PostgreSQL.

Somente leitura por design

Um validador somente leitura rejeita qualquer instrução que não seja SELECT antes que ela chegue ao Postgres. Não há nada acidental. ATUALIZAR ou DERRUBAR caminho através da API.

Seu SQL permanece privado.

O destinatário vê o URL do endpoint, a resposta JSON e quaisquer filtros que você tenha exposto — nunca seu SQL, esquema, nome do host ou string de conexão.

Nada para hospedar ou corrigir.

Sem contêiner PostgREST, sem aplicativo Express, sem proxy reverso. O endpoint é executado como um recurso gerenciado, portanto, não há pipeline de implantação ou rotação de TLS para gerenciar.

Permanente, com prazo de validade ou autodestrutivo

Torne um endpoint permanente, defina uma data de expiração ou atribua a ele um orçamento de chamadas fixo que se autodestruirá após um número definido de solicitações.

As maneiras usuais de colocar uma API REST no Postgres — e por que elas são problemáticas.

Existem ferramentas bem conhecidas para isso, e elas são boas no que fazem. O problema é que todas elas deixam você responsável pela infraestrutura, pela exposição da rede ou por ambos. Veja como as abordagens comuns se comparam a um endpoint compartilhado do Query Streams quando o objetivo é simplesmente "permitir que um parceiro específico leia um conjunto de resultados específico".

Preocupação PostgREST / Hasura (hospedado internamente) Faça você mesmo Express / FastAPI Fluxos de consulta
Banco de dados acessível pela API É necessário acessar o Postgres (geralmente um novo caminho de rede/porta pública). É necessário acessar o Postgres Agente somente de saída — sem porta de entrada
O que o destinatário detém Um URL para o seu esquema Um URL para o seu serviço Uma chave de propósito único para uma consulta
Exposição do esquema Todo o esquema é exposto por padrão. Independentemente do que você codificar manualmente. Uma consulta salva, nada mais.
Chaves por destinatário + revogação Construa você mesmo Construa você mesmo Construído em
Registro de auditoria de todas as chamadas Adicione você mesmo Adicione você mesmo Construído em
Você opera/corrige/rotaciona TLS Sim, para sempre. Sim, para sempre. Gerenciado para você
Tempo até o primeiro ponto final Horas a dias Dias Minutos

Procurando uma alternativa ao PostgREST para compartilhamento entre parceiros?

O PostgREST é excelente quando você deseja uma superfície REST completa e auto-hospedada sobre seu próprio esquema. Se, em vez disso, você quiser fornecer a um parceiro específico um conjunto de resultados somente leitura e controlado — com sua própria chave, um registro de auditoria e sem a necessidade de executar um servidor —, é exatamente essa lacuna que o Query Streams preenche. Os dois podem coexistir: PostgREST para seu aplicativo interno e Query Streams para compartilhamento externo.

Como o Query Streams transforma uma consulta Postgres em uma API REST

Após a instalação do Agente de Rede e a configuração do conector PostgreSQL, a promoção de uma consulta salva para um endpoint REST compartilhado requer cerca de três etapas. Se você já utiliza o Query Streams para Excel, Planilhas Google ou o Servidor MCP, seu Agente e conector já estão instalados — você começa na etapa dois.

1

Conecte o PostgreSQL através do Agente.

Instale o Agente de Rede próximo ao seu banco de dados e adicione um conector PostgreSQL com uma função padrão de somente leitura. O Agente estabelece uma conexão TLS de saída com o Query Streams — seu banco de dados nunca fica exposto à internet.

2

Salvar uma consulta SQL

Escreva o SELECIONAR No Construtor de Consultas, em relação à sua conexão com o Postgres — JOINs, CTEs, funções de janela e parâmetros são todos bem-vindos. Dê um nome e salve. Qualquer coisa que você possa selecionar com um SELECT pode se tornar um endpoint.

3

Divulgue e compartilhe uma chave.

Abra a aba Instalar, escolha o tipo de endpoint (permanente, com prazo de validade ou orçamento de chamadas) e o formato de saída e, em seguida, convide um destinatário por e-mail. Ele receberá um link mágico e sua própria conta. qsapi_* chave.

Uma consulta salva, várias superfícies

A mesma consulta PostgreSQL salva pode acionar uma atualização do Excel, uma barra lateral do Google Sheets, uma conversa com o Claude ou o Cursor por meio do Servidor PostgreSQL MCP, e um endpoint REST voltado para parceiros simultaneamente. Você cria a consulta uma vez; o Query Streams cuida das interfaces.

Nenhuma porta Postgres aberta, nenhuma credencial compartilhada.

O modelo de segurança é o motivo pelo qual as equipes optam por essa solução em vez de uma porta de banco de dados pública. Sua senha do PostgreSQL fica armazenada apenas no repositório de credenciais criptografado do Agente em sua rede; ela nunca é transmitida para nossa nuvem e nunca fica visível para o destinatário. Além disso, cada endpoint oferece controles específicos para cada destinatário, que você pode reforçar antes de compartilhar.

Agente somente para ligações externas

O agente se conecta a agente.querystreams.com na porta 443. Seu firewall vê HTTPS de saída normal — nenhuma porta de entrada, nenhuma VPN, nenhum túnel.

Aplicação de somente leitura

Um validador é executado no Agente, em sua rede, antes que qualquer instrução chegue ao Postgres. Instruções que não sejam SELECT são rejeitadas. VIOLAÇÃO_SOMENTE_LEITURA.

Listas de permissão IP + CORS

Vincule a chave de um destinatário a IPs ou intervalos CIDR específicos e restrinja quais origens de navegador podem chamar cada endpoint. Chamadas fora da lista são recusadas antes de qualquer execução de SQL.

Limites de taxa + cotas de bytes

Limites de taxa de transferência em dois níveis (por chave e por ponto de extremidade), além de um limite de bytes mensal opcional, mantêm um destinatário ruidoso ou descontrolado dentro de um raio de segurança.

Chame sua API REST do PostgreSQL

Os destinatários chamam o endpoint como qualquer outra API REST: um token de portador e uma URL. Qualquer parâmetro de consulta salvo que você tenha exposto pode ser definido por chamada — na string de consulta para PEGAR ou em um corpo JSON para PUBLICARO agente vincula esses valores como parâmetros de instruções preparadas adequados, nunca por concatenação de strings, portanto, um destinatário não pode escapar de um filtro para injetar SQL.

GET com um parâmetro de filtro
# Chamada do destinatário para o seu endpoint com suporte Postgres cachos -H “Autorização: Portador qsapi_K7…ZmQ” \ “https://api.querystreams.com/v1/endpoints/orders-by-region?region=EMEA&since=2026-01-01”

Selecione o formato de saída por chamada com o Aceitar cabeçalho (ou um ?formato= parâmetro de consulta): JSON para um único array, CSV para planilhas e pandas ou, em um endpoint de streaming, NDJSON (uma linha JSON por linha) para pipelines de análise contínua. Para consumidores com restrições de largura de banda, opte por essa configuração. LZ4 compressão de carga útil com Codificação de aceitação: lz4Respostas não comprimidas também recebem o padrão gzip na rede automaticamente. Para obter uma descrição completa dos modos estático e de streaming, das quatro combinações de fios e da geração OpenAPI 3.1, consulte o API REST instantânea para bancos de dados SQL guia.

Como o uso é cobrado

A plataforma de API está incluída em todos os planos e utiliza a mesma franquia mensal de bytes que o Excel, o Google Sheets e o servidor MCP — as chamadas LZ4 são cobradas com base em bytes comprimidos; caso contrário, a cobrança é feita com base em bytes não comprimidos. Como a franquia de bytes compartilhada é medida →

Integre-o ao Power BI, Tableau e qualquer outra ferramenta que leia JSON.

Porque cada ponto de extremidade retorna o padrão. JSON — com CSV e streaming NDJSON disponíveis — qualquer ferramenta que consiga ler um feed REST consome seus dados do PostgreSQL diretamente, sem precisar instalar nada do lado dela. Power Query é a ponte mais fácil para o conjunto de ferramentas de BI da Microsoft: em Power BI escolher Obter dados → Da WebCole o URL do endpoint e adicione o seu Autorização O Power Query cria um cabeçalho e analisa o JSON, transformando-o em uma tabela atualizável que alimenta seu modelo de dados. (Para dados em tempo real dentro de uma planilha, use o recurso nativo.) Suplemento Query Streams para Excel é o caminho mais simples — o Power Query está disponível quando você deseja os dados no próprio modelo do Power BI.

Logotipo do Microsoft Power Query Power Query Obter dados → Da Web, cole o URL e o token de portador, expanda o JSON para uma tabela atualizável.
Logotipo do Microsoft Power BI Power BI O mesmo mecanismo do Power Query — carregue o endpoint diretamente no seu modelo e agende a atualização.
Logotipo do Tableau Quadro Aponte um conector de dados da Web ou uma fonte JSON para o endpoint para painéis de controle em tempo real.
Logotipo do carteiro Carteiro Importe a especificação OpenAPI 3.1 e, em seguida, envie, inspecione e compartilhe solicitações com um único clique.

Também alimenta n8n, Qlik, cachos, Python (solicitações ou pandas.read_json), Insomnia, Hoppscotch — ou qualquer script ou fluxo de trabalho que possa enviar uma solicitação HTTP e ler JSON.

Funciona também com Postgres gerenciado.

Não importa onde seu PostgreSQL esteja sendo executado. O Agente se conecta da mesma forma a um servidor local ou a um serviço gerenciado — Amazon RDS para PostgreSQL e Aurora PostgreSQL, Banco de Dados do Azure para PostgreSQL, Google Cloud SQL para PostgreSQL, Supabase ou Neon. Para obter a menor latência, implante o Agente na mesma rede ou região que o banco de dados; uma conta do Query Streams pode executar vários Agentes em diferentes regiões e nuvens, e um único endpoint se comporta de maneira idêntica, independentemente do Agente que o atende.

Mais do que PostgreSQL

O mesmo fluxo de trabalho promove uma consulta salva do Microsoft SQL Server, MySQL, MariaDB, SQLite, Microsoft Access, Snowflake, Oracle, BigQuery ou DuckDB para um endpoint REST. O PostgreSQL é simplesmente um dos pontos de partida mais populares. Navegue pelo Guias de configuração de conectores para a lista atual.

Perguntas frequentes

Preciso abrir uma porta ou expor o PostgreSQL à internet? +
Não — o Agente de Rede disca via TLS na porta 443, portanto, as chamadas de entrada retornam por essa conexão de saída e pela porta do seu PostgreSQL (5432 Por padrão, nunca é exposto. Como funciona a conexão somente de saída →
O destinatário pode ver minhas credenciais SQL ou de banco de dados? +
Nunca — o destinatário vê apenas o URL do endpoint, a resposta e os filtros que você expôs, enquanto suas senhas do SQL e do PostgreSQL permanecem armazenadas no repositório de credenciais criptografadas do Agente em sua rede. O que permanece privado por trás de cada chave →
Qual a diferença entre isso e o PostgREST ou o Hasura? +
PostgREST e Hasura geram uma ampla superfície de API sobre seu esquema e são executados como serviços que você hospeda, protege e mantém acessíveis a partir do Postgres. O Query Streams adota uma abordagem oposta, mais restrita, para compartilhamento externo: você expõe uma consulta salva como um endpoint, cada destinatário recebe sua própria chave revogável, cada chamada é auditada e você não precisa implantar ou corrigir nada. Muitas equipes utilizam ambas as ferramentas — uma ferramenta interna como o PostgREST e o Query Streams para compartilhar dados externamente.
Quais formatos de saída a API pode retornar? +
JSON (o padrão), CSV e — em um endpoint de streaming — NDJSON, escolhido por chamada com o Aceitar cabeçalho ou um ?formato= parâmetro, com compressão de carga útil LZ4 opcional. Formatos de transmissão e opções de compressão →
Os destinatários podem filtrar os resultados ou recebem uma consulta fixa? +
Você decide. Qualquer parâmetro que você expuser na consulta salva se torna um filtro que o destinatário pode definir por chamada — na string de consulta para PEGAR ou um corpo JSON para PUBLICAROs parâmetros que você não expõe permanecem fixos. O Agente associa cada valor como um parâmetro de instrução preparada, portanto, os filtros não podem ser usados para injetar SQL.
Um endpoint pode expirar ou se autodestruir? +
Sim — um endpoint pode ser permanente, expirar em uma data específica ou ter um orçamento de chamadas fixo, e você pode revogar instantaneamente a chave de qualquer destinatário sem afetar as outras ou alterar a senha do seu banco de dados. Tempo de vida dos endpoints e revogação de chaves por destinatário →
Funciona com Amazon RDS, Azure, Cloud SQL, Supabase ou Neon? +
Sim. O Agente se conecta a qualquer PostgreSQL acessível, seja local ou gerenciado — Amazon RDS e Aurora PostgreSQL, Banco de Dados do Azure para PostgreSQL, Google Cloud SQL para PostgreSQL, Supabase e Neon funcionam. Para obter a melhor latência, execute o Agente na mesma região que o banco de dados; uma conta pode executar vários Agentes em diferentes nuvens e regiões.
O destinatário precisa de uma conta do Query Streams? +
Recomenda-se o compartilhamento por e-mail — o destinatário recebe um link mágico e uma organização de nível gratuito criada automaticamente — ou você pode emitir uma chave de serviço para acesso não supervisionado de máquina para máquina. Reivindicações por destinatário versus chaves de serviço →

Começar a usar

Publique sua primeira API REST PostgreSQL gratuitamente.

Cadastre-se, instale o Agente de Rede ao lado do seu banco de dados Postgres, salve uma consulta SQL e envie um link mágico para o destinatário por e-mail. Chaves por destinatário, permissão somente leitura e um registro completo de auditoria são ativados desde a primeira chamada.

Guias relacionados: API REST instantânea para bancos de dados SQL | Plataforma de API REST de banco de dados | Conecte o PostgreSQL ao Claude via MCP. | Guias de configuração de conectores

Categoria: Plataforma de API

Tags: postgres-rest-api, postgresql, rest-api, expor-postgres-como-api, alternativa-postgrest, compartilhar-dados-postgres, chaves-por-destinatário, api-sem-código, api-rest-de-banco-de-dados

Metadescrição: Transforme uma consulta PostgreSQL em uma API REST segura e somente leitura com chaves por destinatário — sem portas abertas, sem PostgREST, sem código.

Atualizado em 16 de junho de 2026

Desenvolvido por BetterDocs