Visualizza le categorie

Come esporre un database MySQL come API REST sicura

11 minuti di lettura

Logo MySQL MySQL API REST

Trasforma una query MySQL in una query sicura API REST — nessuna app Express, nessun server da ospitare.

Salva una query SQL sul tuo database MySQL, crea una chiave API per ogni destinatario e consegna a un partner un endpoint JSON attivo. Nessun servizio PHP o Node da costruire, nessun open source 3306 porta, nessuna credenziale condivisa: solo una porta governata, di sola lettura API REST MySQL 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 MySQL 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 MySQL senza scrivere un backend, aprire una porta del database o ospitare un gateway. Per saperne di più, visita QueryStreams.com e iscriviti gratuitamente Pubblica il tuo primo endpoint MySQL in pochi minuti.

Perché esporre un database MySQL come API REST?

Prima o poi, qualcuno al di fuori del tuo team avrà bisogno di dati che risiedono in MySQL: 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 soluzioni presentano tutte qualche problema. Invii esportazioni via email che sono obsolete al momento della ricezione, distribuisci un utente MySQL di sola lettura che sopravvive al progetto, oppure avvii un piccolo servizio PHP o Node e ne erediti per sempre l'autenticazione, il TLS e le patch. API REST MySQL 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 più una chiave.

Nessuna porta MySQL aperta.

Non ti esponi mai 3306 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 del tuo utente MySQL.

Sola lettura per impostazione predefinita

Un validatore di sola lettura rifiuta qualsiasi istruzione diversa da SELECT prima che raggiunga MySQL. Non c'è alcun errore accidentale AGGIORNAMENTO, ELIMINARE, 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

Nessuna applicazione Express, nessuna API Laravel, 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 MySQL e perché sono problematici

Esistono metodi ben noti per implementare un livello HTTP su MySQL, e sono validi per lo scopo a cui sono destinati. Il problema è che ognuno di essi comporta la responsabilità di un backend, di un'esposizione di rete o di entrambi. Ecco un confronto tra gli approcci più 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 API fai-da-te in PHP / Node / Laravel Strumento Auto-API (self-hosted) Flussi di query
Database raggiungibile tramite API Deve raggiungere MySQL Deve poter raggiungere MySQL (spesso tramite una porta pubblica). Agente solo in uscita — nessuna porta in entrata
Ciò che il destinatario tiene Un URL nel tuo servizio Un URL nel tuo schema Una chiave monouso per una singola query
Esposizione dello schema Qualunque cosa tu codifichi manualmente L'intero schema viene esposto per impostazione predefinita. 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 Giorni Dalle ore ai giorni Minuti

Non hai voglia di costruire e gestire un backend?

Un server API creato manualmente è l'opzione più flessibile quando è necessaria una logica di business complessa. Ma se si desidera semplicemente fornire a un partner specifico un set di risultati governato e di sola lettura, con una propria chiave, una traccia di controllo e senza alcun servizio da eseguire, Query Streams colma esattamente questa lacuna. Create il backend quando ne avete realmente bisogno; utilizzate Query Streams quando l'obiettivo è "condividere questa query in modo sicuro".

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

Una volta installato l'agente di rete e configurato il connettore MySQL, 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 MySQL tramite l'agente

Installa l'agente di rete accanto al tuo database e aggiungi un connettore MySQL con un utente 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 Generatore di query, utilizza la tua connessione MySQL: JOIN, subquery e parametri sono tutti benvenuti. 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 MySQL salvata può attivare un aggiornamento di Excel, una barra laterale di Fogli Google, una conversazione Claude o Cursor tramite il server MCP, e un endpoint REST rivolto ai partner allo stesso tempo. La query viene creata una sola volta; Query Streams gestisce le interfacce.

Nessuna porta MySQL 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 MySQL risiede esclusivamente nell'archivio di credenziali crittografato 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 affinare 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 MySQL. 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 MySQL

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 al tuo endpoint basato su MySQL arricciare -H “Autorizzazione: Portatore qsapi_K7…ZmQ” \ “https://api.querystreams.com/v1/endpoints/orders-today?warehouse=US-EAST&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 Query Streams, senza necessità di abbonamento separato, e utilizza la stessa quota mensile di byte impiegata da Excel, Fogli Google e dal server MCP. Come vengono conteggiati la fatturazione basata sui byte e la compressione LZ4 →

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 MySQL, senza bisogno di installare nulla e senza richiedere alcun driver MySQL. 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.

Compatibile anche con Amazon RDS, Cloud SQL e PlanetScale.

Non importa dove sia in esecuzione il tuo MySQL. L'agente si connette allo stesso modo a un server locale o a un servizio gestito, come Amazon RDS e Aurora MySQL, Azure Database per MySQL, Google Cloud SQL per MySQL o PlanetScale. 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.

Utilizzi MariaDB?

Lo stesso connettore serve a MariaDB, che condivide il protocollo di rete di MySQL. Se il tuo database è MariaDB, segui le istruzioni dedicate. Esporre un database MariaDB come API REST guida — il flusso di lavoro è identico. Lo stesso approccio copre anche PostgreSQL, Microsoft SQL Server, SQLite, Microsoft Access, Snowflake, Oracle, BigQuery e DuckDB; sfoglia la Guide all'installazione dei connettori per l'elenco attuale.

Domande frequenti

Devo aprire una porta o esporre MySQL 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 e la tua porta MySQL (3306 (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: i destinatari vedono solo l'URL dell'endpoint, la risposta e i filtri che hai esposto, mentre la tua password MySQL rimane nell'archivio delle credenziali crittografate dell'agente sulla tua rete. Ciò che rimane privato e ciò che il destinatario vede →
Devo necessariamente creare un backend per ottenere un'API REST MySQL? +
No, invece di scrivere e ospitare un servizio PHP, Node o Laravel, si salva una query SQL e la si promuove a un endpoint, e Query Streams fornisce l'autenticazione, TLS, la limitazione della frequenza, il registro di controllo e le chiavi per ogni destinatario. perché non esiste un backend da compilare o patchare →
Quali formati di output può restituire l'API? +
JSON (un singolo array, predefinito), CSV (RFC 4180) 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? +
Decidi tu: qualsiasi parametro che esponi diventa un filtro per chiamata (OTTENERE stringa di query o INVIARE corpo JSON) che l'agente associa come parametro prepared-statement, quindi i filtri non possono essere utilizzati per iniettare SQL. Come funzionano i parametri esposti e la sicurezza contro le SQL injection →
Un endpoint può scadere o autodistruggersi? +
Sì, un endpoint può essere permanente, scadere in una data specifica o avere un budget di chiamate fisso che si autodistrugge dopo un determinato numero di richieste, ed è possibile revocare la chiave di qualsiasi destinatario all'istante senza dover cambiare la password del database. Durata di validità degli endpoint e controlli chiave per destinatario →
È compatibile con Amazon RDS, Cloud SQL o PlanetScale? +
Sì. L'agente si connette a qualsiasi istanza MySQL raggiungibile, sia locale che gestita: Amazon RDS e Aurora MySQL, Azure Database per MySQL, Google Cloud SQL per MySQL e PlanetScale 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 attivazione e, una volta accettato, verrà creata automaticamente un'organizzazione di livello gratuito. In alternativa, è possibile rilasciare una chiave di servizio per l'accesso automatico da macchina a macchina. Richieste del destinatario vs. chiavi di servizio →

Iniziare

Pubblica gratuitamente la tua prima API REST MySQL.

Registrati, installa Network Agent accanto al tuo database MySQL, salva una query SQL e invia via email al destinatario una richiesta di accesso tramite link magico. Chiavi per singolo 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 | Esporre MariaDB come API REST | Guide all'installazione dei connettori

Categoria: Piattaforma API

Tag: mysql-rest-api, mysql, rest-api, esporre-mysql-come-api, mysql-api-no-code, condividere-dati-mysql, chiavi-per-destinatario, no-code-api, database-rest-api

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

Updated on 16 giugno 2026

Powered by BetterDocs