Visualizza le categorie

Come esporre un database PostgreSQL come API REST sicura

11 minuti di lettura

logo di PostgreSQL POSTGRESQL API REST

Trasforma una query PostgreSQL in una query sicura API REST — niente PostgREST, nessun server da ospitare.

Salva una query SQL sul tuo database Postgres, crea una chiave API per ogni destinatario e fornisci a un partner un endpoint JSON attivo. Nessuna apertura 5432 porta, nessuna credenziale condivisa, nessun servizio Express da compilare e patchare: solo una porta governata e di sola lettura API REST di Postgres in minuti.

Nessuna porta in entrata chiavi per destinatario Modalità di sola lettura obbligatoria Niente da implementare

Query Streams è una piattaforma di integrazione di database sicura e in tempo reale che trasforma qualsiasi query PostgreSQL salvata in un endpoint API REST pronto per i partner, con chiavi per destinatario, vincolo di sola lettura e tracciabilità completa delle modifiche. Ottieni una vita API REST di Postgres senza aprire una porta del database, condividere le credenziali o ospitare un gateway. Per saperne di più, visita QueryStreams.com e iscriviti gratuitamente Pubblica il tuo primo endpoint PostgreSQL in pochi minuti.

Perché esporre un database PostgreSQL come API REST?

Prima o poi, qualcuno al di fuori del tuo team avrà bisogno dei dati che risiedono in PostgreSQL: un cliente vuole i suoi dati in una dashboard, un fornitore vuole un feed in tempo reale invece di un CSV notturno, l'app di un partner deve leggere una porzione delle tue tabelle. Le solite risposte rivelano tutte qualcosa che preferiresti conservare: invii esportazioni via email che sono obsolete nel momento stesso in cui arrivano, distribuisci un accesso di sola lettura psql login che sopravvive all'impegno, oppure si avvia un piccolo servizio e se ne ereditano autenticazione, TLS e patch per sempre. API REST di PostgreSQL Questa è la versione pulita: il partner riceve un URL e un token, non il tuo database. La parte difficile è sempre stata costruire e gestire quell'API in modo sicuro. Query Streams la trasforma in una query salvata con una chiave.

Nessuna porta Postgres aperta

Non ti esponi mai 5432 collegarsi a Internet o aprire una porta nel firewall. L'agente di rete effettua la chiamata in uscita; le chiamate in entrata viaggiano attraverso quella connessione in uscita.

Chiavi API per destinatario

Ogni destinatario riceve il proprio qsapi_* Chiave. Revoca una senza toccare le altre e senza cambiare la password di PostgreSQL.

Sola lettura per impostazione predefinita

Un validatore di sola lettura rifiuta qualsiasi istruzione diversa da SELECT prima che raggiunga Postgres. Non c'è alcun errore accidentale AGGIORNAMENTO o GOCCIOLARE percorso attraverso l'API.

Il tuo codice SQL rimane privato

Il destinatario visualizza l'URL dell'endpoint, la risposta JSON e gli eventuali filtri esposti, ma mai il codice SQL, lo schema, il nome host o la stringa di connessione.

Niente da ospitare o patchare

Nessun container PostgREST, nessuna app Express, nessun reverse proxy. L'endpoint viene eseguito come funzionalità gestita, quindi non è necessario gestire alcuna pipeline di distribuzione o rotazione TLS.

Permanente, in scadenza o autodistruttivo

Rendi un endpoint permanente, impostane la scadenza in una data specifica oppure assegnagli un budget di chiamate fisso che lo autodistrugge dopo un determinato numero di richieste.

I metodi usuali per implementare un'API REST su PostgreSQL e perché sono problematici

Esistono strumenti ben noti per questo scopo, e svolgono bene il loro compito. Il problema è che ognuno di essi ti lascia responsabile dell'infrastruttura, di un'esposizione alla rete o di entrambe. Ecco un confronto tra gli approcci comuni e un endpoint condiviso di Query Streams quando l'obiettivo è semplicemente "consentire a un partner specifico di leggere un set di risultati specifico".

Preoccupazione PostgREST / Hasura (self-hosted) DIY Express / FastAPI Flussi di query
Database raggiungibile tramite API Deve raggiungere Postgres (spesso tramite un nuovo percorso di rete/porta pubblica). Deve raggiungere Postgres Agente solo in uscita — nessuna porta in entrata
Ciò che il destinatario tiene Un URL nel tuo schema Un URL nel tuo servizio Una chiave monouso per una singola query
Esposizione dello schema L'intero schema viene esposto per impostazione predefinita. Qualunque cosa tu codifichi manualmente Una sola query salvata, nient'altro.
Chiavi per destinatario + revoca Costruiscilo tu stesso Costruiscilo tu stesso Costruito
Registro di controllo di ogni chiamata Aggiungilo tu stesso Aggiungilo tu stesso Costruito
Gestisci / patch / ruoti TLS Sì, per sempre Sì, per sempre Gestito per te
Tempo al primo punto finale Dalle ore ai giorni Giorni Minuti

Cerchi un'alternativa a PostgREST per la condivisione tra partner?

PostgREST è un'ottima soluzione quando si desidera un'interfaccia REST completa e self-hosted basata sul proprio schema. Se invece si desidera fornire a un partner specifico un set di risultati governato e di sola lettura, con una propria chiave, una traccia di controllo e senza la necessità di eseguire un server, Query Streams colma esattamente questa lacuna. I due sistemi possono coesistere: PostgREST per l'applicazione interna e Query Streams per la condivisione esterna.

Come Query Streams trasforma una query Postgres in un'API REST

Una volta installato l'agente di rete e configurato il connettore PostgreSQL, la promozione di una query salvata a un endpoint REST condiviso richiede circa tre passaggi. Se utilizzi già Query Streams per Excel, Fogli Google o il server MCP, l'agente e il connettore sono già presenti: puoi iniziare dal secondo passaggio.

1

Connetti PostgreSQL tramite l'agente

Installa l'agente di rete accanto al tuo database e aggiungi un connettore PostgreSQL con un ruolo standard di sola lettura. L'agente stabilisce una connessione TLS in uscita verso Query Streams: il tuo database non sarà mai esposto a Internet.

2

Salva una query SQL

Scrivi il SELEZIONARE Nel Query Builder, per la tua connessione Postgres, puoi inserire JOIN, CTE, funzioni finestra e parametri. Assegna un nome e salva. Qualsiasi elemento che puoi selezionare può diventare un endpoint.

3

Promuovilo e condividi una chiave

Apri la scheda Installa, scegli il tipo di endpoint (permanente, in scadenza o con budget di chiamate) e il formato di output, quindi invita un destinatario tramite e-mail. Riceveranno una richiesta di link magico e il proprio qsapi_* chiave.

Una query salvata, molte superfici

La stessa query PostgreSQL salvata può guidare un aggiornamento di Excel, una barra laterale di Fogli Google, una conversazione di Claude o Cursor attraverso il Server MCP PostgreSQL, e un endpoint REST rivolto ai partner allo stesso tempo. La query viene creata una sola volta; Query Streams gestisce le interfacce.

Nessuna porta Postgres aperta, nessuna credenziale condivisa

Il modello di sicurezza è il motivo per cui i team preferiscono questa soluzione a una porta di database pubblica. La password di PostgreSQL risiede esclusivamente nell'archivio delle credenziali crittografate dell'agente sulla rete locale; non viene mai trasmessa al nostro cloud e non è mai visibile al destinatario. Inoltre, ogni endpoint offre controlli specifici per ciascun destinatario, che è possibile configurarli in modo più rigoroso prima della condivisione.

Agente solo in uscita

L'agente si connette a agent.querystreams.com sulla porta 443. Il tuo firewall vede un normale traffico HTTPS in uscita: nessuna porta in entrata, nessuna VPN, nessun tunnel.

Applicazione della sola lettura

Un validatore viene eseguito nell'Agent, sulla tua rete, prima che qualsiasi istruzione raggiunga Postgres. Le istruzioni non SELECT vengono rifiutate con VIOLAZIONE DI SOLA LETTURA.

Liste IP + CORS consentite

Associa la chiave di un destinatario a specifici indirizzi IP o intervalli CIDR e limita i browser che possono chiamare ciascun endpoint. Le chiamate provenienti da indirizzi esterni alla lista vengono rifiutate prima dell'esecuzione di qualsiasi query SQL.

Limiti di velocità + quote di byte

Due livelli di limiti di velocità (per chiave e per endpoint), più un limite mensile di byte opzionale, mantengono un destinatario rumoroso o fuori controllo entro un raggio di sicurezza.

Richiama la tua API REST di PostgreSQL

I destinatari chiamano l'endpoint come qualsiasi altra API REST: un token bearer e un URL. Qualsiasi parametro di query salvata esposto può essere impostato per chiamata — sulla stringa di query per OTTENERE o in un corpo JSON per INVIAREL'agente associa tali valori come parametri di istruzioni preparate appropriati, mai come concatenazione di stringhe, in modo che un destinatario non possa uscire da un filtro per iniettare codice SQL.

GET con un parametro di filtro
# Chiamata del destinatario verso il tuo endpoint basato su Postgres arricciare -H “Autorizzazione: Portatore qsapi_K7…ZmQ” \ “https://api.querystreams.com/v1/endpoints/orders-by-region?region=EMEA&since=2026-01-01”

Seleziona il formato di output per chiamata con il Accettare intestazione (o un ?format= parametro di query): JSON per un singolo array, CSV per fogli di calcolo e pandas, oppure, su un endpoint di streaming, NDJSON (una riga JSON per riga) per pipeline di analisi sintattica. Per i consumatori sensibili alla larghezza di banda, optare per LZ4 compressione del carico utile con Accept-Encoding: lz4; anche le risposte non compresse ottengono lo standard gzip sul filo automaticamente. Per la ripartizione completa delle modalità statica vs streaming, delle quattro combinazioni di fili e della generazione OpenAPI 3.1, vedere il API REST istantanea per database SQL guida.

Modalità di fatturazione dell'utilizzo

La piattaforma API è inclusa in ogni piano e utilizza la stessa quota mensile di byte di Excel, Fogli Google e del server MCP: LZ4 fattura in base ai byte compressi, altrimenti in base ai byte non compressi. Come viene misurata la quota di byte condivisi →

Integralo in Power BI, Tableau e in qualsiasi programma che legga file JSON.

Poiché ogni endpoint restituisce standard JSON — grazie alla disponibilità di CSV e NDJSON in streaming — qualsiasi strumento in grado di leggere un feed REST può utilizzare direttamente i dati PostgreSQL, senza bisogno di installare nulla. Power Query è il ponte più semplice per entrare nello stack di Business Intelligence di Microsoft: in Power BI scegliere Ottieni dati → Dal Web, incolla l'URL dell'endpoint, aggiungi il tuo Autorizzazione intestazione e Power Query analizza il JSON in una tabella aggiornabile che alimenta il modello di dati. (Per i dati in tempo reale all'interno di un foglio di calcolo, il nativo Componente aggiuntivo Query Streams per Excel è la strada più semplice: Power Query è disponibile quando si desidera accedere ai dati direttamente nel modello di Power BI.

Logo di Microsoft Power Query Power Query Ottieni dati → Dal Web, incolla l'URL e il token bearer, espandi il JSON in una tabella aggiornabile
Logo di Microsoft Power BI Power BI Stesso motore Power Query: carica l'endpoint direttamente nel tuo modello e pianifica l'aggiornamento.
Logo Tableau Tableau Punta un connettore dati Web o un'origine JSON all'endpoint per dashboard in tempo reale
logo del postino Postino Importa le specifiche OpenAPI 3.1, quindi invia, analizza e condividi le richieste con un solo clic.

Si nutre anche n8n, Qlik, arricciare, Python (richieste o pandas.read_json), Insomnia, Hoppscotch — o qualsiasi script o flusso di lavoro in grado di inviare una richiesta HTTP e leggere JSON.

Funziona anche con PostgreSQL gestito.

Non importa dove sia in esecuzione il tuo PostgreSQL. L'agente si connette allo stesso modo a un server locale o a un servizio gestito: Amazon RDS per PostgreSQL e Aurora PostgreSQL, Azure Database per PostgreSQL, Google Cloud SQL per PostgreSQL, Supabase o Neon. Per ridurre al minimo la latenza, distribuisci l'agente nella stessa rete o regione del database; un singolo account Query Streams può eseguire più agenti in regioni e cloud diversi e un singolo endpoint si comporta in modo identico indipendentemente dall'agente che lo gestisce.

Più di PostgreSQL

Lo stesso flusso di lavoro promuove una query salvata da Microsoft SQL Server, MySQL, MariaDB, SQLite, Microsoft Access, Snowflake, Oracle, BigQuery o DuckDB a un endpoint REST. PostgreSQL è semplicemente uno dei punti di partenza più popolari. Esplora il Guide all'installazione dei connettori per l'elenco attuale.

Domande frequenti

Devo aprire una porta o esporre PostgreSQL a Internet? +
No, l'agente di rete effettua chiamate in uscita tramite TLS sulla porta 443, quindi le chiamate in entrata tornano indietro attraverso quella connessione in uscita e la tua porta PostgreSQL (5432 (per impostazione predefinita) non viene mai esposto. Come funziona la connessione solo in uscita →
Il destinatario può visualizzare le mie credenziali SQL o del mio database? +
Mai: il destinatario vede solo l'URL dell'endpoint, la risposta e i filtri che hai esposto, mentre le tue password SQL e PostgreSQL rimangono all'interno dell'archivio credenziali crittografato dell'agente sulla tua rete. Ciò che resta privato dietro ogni chiave →
In che cosa si differenzia da PostgREST o Hasura? +
PostgREST e Hasura generano un'ampia superficie API sul tuo schema e vengono eseguiti come servizi che ospiti, proteggi e mantieni accessibili da PostgreSQL. Query Streams adotta un approccio opposto, più ristretto, per la condivisione in uscita: esponi una query salvata come un endpoint, ogni destinatario ottiene la propria chiave revocabile, ogni chiamata viene registrata e non c'è nulla da implementare o aggiornare. Molti team utilizzano entrambi: uno strumento interno come PostgREST e Query Streams per la condivisione dei dati all'esterno.
Quali formati di output può restituire l'API? +
JSON (il predefinito), CSV e — su un endpoint di streaming — NDJSON, scelto per chiamata con il Accettare intestazione o un ?format= parametro, con compressione del payload LZ4 opzionale. formati di collegamento e opzioni di compressione →
I destinatari possono filtrare i risultati o ricevono una query predefinita? +
Tu decidi. Qualsiasi parametro che esponi nella query salvata diventa un filtro che il destinatario può impostare per chiamata — sulla stringa di query per OTTENERE o un corpo JSON per INVIAREI parametri che non vengono esposti rimangono fissi. L'agente associa ogni valore come parametro di istruzione preparata, pertanto non è possibile utilizzare i filtri per iniettare codice SQL.
Un endpoint può scadere o autodistruggersi? +
Sì, un endpoint può essere permanente, scadere in una data specifica o avere un budget di chiamate fisso, ed è possibile revocare la chiave di qualsiasi destinatario all'istante senza dover modificare le altre o cambiare la password del database. Durata di validità degli endpoint e revoca della chiave per singolo destinatario →
È compatibile con Amazon RDS, Azure, Cloud SQL, Supabase o Neon? +
Sì. L'agente si connette a qualsiasi istanza di PostgreSQL raggiungibile, sia locale che gestita: Amazon RDS e Aurora PostgreSQL, Azure Database per PostgreSQL, Google Cloud SQL per PostgreSQL, Supabase e Neon sono tutti compatibili. Per ottenere la latenza migliore, esegui l'agente nella stessa area geografica del database; un singolo account può eseguire più agenti in cloud e aree geografiche diverse.
Il destinatario necessita di un account Query Streams? +
Si consiglia la condivisione tramite e-mail: il destinatario riceverà un link di accesso e un'organizzazione gratuita creata automaticamente. In alternativa, è possibile rilasciare una chiave di servizio per l'accesso automatico da macchina a macchina. Richieste per destinatario rispetto alle chiavi di servizio →

Iniziare

Pubblica gratuitamente la tua prima API REST PostgreSQL.

Registrati, installa l'agente di rete accanto al tuo database Postgres, salva una query SQL e invia via email a un destinatario una richiesta di accesso tramite link magico. Chiavi per destinatario, accesso in sola lettura e tracciabilità completa delle modifiche sono disponibili fin dalla prima chiamata.

Guide correlate: API REST istantanea per database SQL | Piattaforma API REST per database | Connetti PostgreSQL a Claude tramite MCP | Guide all'installazione dei connettori

Categoria: Piattaforma API

Tag: postgres-rest-api, postgresql, rest-api, esporre-postgres-come-api, postgrest-alternative, condividere-dati-postgres, chiavi-per-destinatario, no-code-api, database-rest-api

Meta Description: Trasforma una query PostgreSQL in un'API REST sicura e di sola lettura con chiavi per destinatario: nessuna porta aperta, nessun PostgREST, nessun codice.

Updated on 16 giugno 2026

Powered by BetterDocs