View Categories

Cara Mengekspos Basis Data PostgreSQL sebagai API REST yang Aman

Waktu baca 11 menit

Logo PostgreSQL POSTGRESQL API REST

Ubah kueri PostgreSQL menjadi kueri yang aman. API REST — tanpa PostgREST, tidak ada server untuk hosting.

Simpan kueri SQL terhadap basis data Postgres Anda, buat kunci API untuk setiap penerima, dan berikan titik akhir JSON langsung kepada mitra Anda. Tidak ada akses terbuka. 5432 port, tanpa kredensial bersama, tanpa layanan Express untuk membangun dan menambal — hanya akses baca-saja yang diatur. API REST Postgres dalam hitungan menit.

Tidak ada port masuk Kunci per penerima Diberlakukan mode baca saja. Tidak ada yang perlu dikerahkan

Query Streams adalah platform integrasi basis data real-time yang aman yang mengubah setiap kueri PostgreSQL yang tersimpan menjadi titik akhir API REST yang siap digunakan oleh mitra — dengan kunci per penerima, penegakan akses baca saja, dan jejak audit lengkap. Anda mendapatkan siaran langsung API REST Postgres tanpa membuka port basis data, berbagi kredensial, atau menghosting gateway. Pelajari selengkapnya di QueryStreams.com dan Daftar gratis untuk mempublikasikan endpoint PostgreSQL pertama Anda dalam hitungan menit.

Mengapa mengekspos basis data PostgreSQL sebagai API REST?

Cepat atau lambat, seseorang di luar tim Anda membutuhkan data yang tersimpan di PostgreSQL — klien menginginkan angka-angka mereka dalam dasbor, vendor menginginkan umpan data langsung alih-alih CSV harian, aplikasi mitra perlu membaca sebagian dari tabel Anda. Jawaban umum semuanya membocorkan sesuatu yang ingin Anda rahasiakan: Anda mengirimkan ekspor melalui email yang sudah usang begitu sampai, Anda memberikan akses baca saja. psql Anda dapat memilih login yang tetap aktif meskipun masa kontrak berakhir, atau Anda dapat membuat layanan kecil dan mewarisi otentikasi, TLS, dan pembaruan perangkat lunaknya selamanya. API REST PostgreSQL Ini adalah versi yang lebih bersih — mitra mendapatkan URL dan token, bukan basis data Anda. Bagian tersulit selalu terletak pada membangun dan mengoperasikan API tersebut dengan aman. Query Streams membuatnya menjadi kueri tersimpan ditambah kunci.

Tidak ada port Postgres yang terbuka.

Anda tidak pernah mengekspos 5432 ke internet atau membuat celah di firewall Anda. Agen Jaringan melakukan panggilan keluar; panggilan masuk kembali melalui satu koneksi keluar tersebut.

Kunci API per penerima

Setiap penerima mendapatkan bagiannya masing-masing qsapi_* kunci. Cabut salah satunya tanpa menyentuh yang lain, dan tanpa mengubah kata sandi PostgreSQL Anda.

Dirancang hanya untuk dibaca.

Validator hanya baca menolak pernyataan non-SELECT apa pun sebelum mencapai Postgres. Tidak ada kesalahan yang tidak disengaja. MEMPERBARUI atau MENJATUHKAN jalur melalui API.

SQL Anda tetap bersifat pribadi.

Penerima akan melihat URL endpoint, respons JSON, dan filter apa pun yang Anda tampilkan — bukan SQL, skema, nama host, atau string koneksi Anda.

Tidak ada yang perlu dihosting atau ditambal

Tidak ada kontainer PostgREST, tidak ada aplikasi Express, tidak ada reverse proxy. Endpoint berjalan sebagai fitur terkelola, sehingga tidak ada pipeline deployment atau rotasi TLS yang perlu dikelola.

Permanen, kedaluwarsa, atau hancur sendiri

Jadikan endpoint permanen, atur agar kedaluwarsa pada tanggal tertentu, atau berikan anggaran panggilan tetap yang akan menghancurkan dirinya sendiri setelah sejumlah permintaan tertentu.

Cara umum untuk memasang REST API di Postgres — dan mengapa cara tersebut merugikan.

Ada beberapa alat yang sudah terkenal untuk ini, dan alat-alat tersebut memang bagus dalam fungsinya. Masalahnya adalah, setiap alat tersebut membuat Anda harus memiliki infrastruktur, kerentanan jaringan, atau keduanya. Berikut perbandingan pendekatan umum dengan endpoint bersama Query Streams ketika tujuannya hanya "membiarkan mitra tertentu membaca kumpulan hasil tertentu."

Kekhawatiran PostgREST / Hasura (hosting sendiri) DIY Express / FastAPI Aliran Kueri
Basis data yang dapat diakses dari API Harus terhubung ke Postgres (seringkali melalui jalur jaringan/port publik baru) Harus mengakses Postgres Agen khusus keluar — tidak ada port masuk
Apa yang dipegang oleh penerima URL ke dalam skema Anda URL ke layanan Anda Kunci tunggal untuk satu kueri
Paparan skema Seluruh skema ditampilkan secara default. Apa pun yang Anda tulis secara manual Satu kueri tersimpan, tidak ada yang lain.
Kunci per penerima + pencabutan Bangun sendiri Bangun sendiri Terpasang di
Catatan audit setiap panggilan Tambahkan sendiri Tambahkan sendiri Terpasang di
Anda mengoperasikan / menambal / merotasi TLS Ya, selamanya Ya, selamanya Dikelola untuk Anda
Waktu menuju titik akhir pertama Jam hingga hari Hari-hari Menit

Mencari alternatif PostgREST untuk berbagi dengan mitra?

PostgREST sangat bagus jika Anda menginginkan antarmuka REST yang sepenuhnya mandiri dan dihosting sendiri di atas skema Anda sendiri. Namun, jika Anda ingin memberikan kepada mitra tertentu satu set hasil yang diatur dan hanya dapat dibaca — dengan kunci sendiri, jejak audit, dan tanpa server yang perlu dijalankan — itulah celah yang diisi oleh Query Streams. Keduanya dapat hidup berdampingan: PostgREST untuk aplikasi internal Anda, Query Streams untuk berbagi data keluar.

Bagaimana Query Streams mengubah kueri Postgres menjadi API REST

Setelah Network Agent terpasang dan konektor PostgreSQL Anda dikonfigurasi, mempromosikan kueri yang tersimpan ke titik akhir REST bersama membutuhkan sekitar tiga langkah. Jika Anda sudah menggunakan Query Streams untuk Excel, Google Sheets, atau MCP Server, Agent dan konektor Anda sudah tersedia — Anda mulai dari langkah kedua.

1

Hubungkan PostgreSQL melalui Agen.

Instal Network Agent di samping basis data Anda dan tambahkan konektor PostgreSQL dengan peran baca saja standar. Agent tersebut membuat koneksi TLS keluar ke Query Streams — basis data Anda tidak pernah terekspos ke internet.

2

Simpan kueri SQL

Tulis PILIH Di Query Builder, buatlah kueri yang sesuai dengan koneksi Postgres Anda — JOIN, CTE, fungsi jendela, dan parameter semuanya diterima. Beri nama dan simpan. Apa pun yang dapat Anda SELECT dapat menjadi endpoint.

3

Promosikan dan bagikan kuncinya

Buka tab Instal, pilih jenis endpoint (permanen, kedaluwarsa, atau anggaran panggilan) dan format output, lalu undang penerima melalui email. Mereka akan mendapatkan klaim tautan ajaib dan milik mereka sendiri. qsapi_* kunci.

Satu kueri tersimpan, banyak permukaan.

Kueri PostgreSQL yang tersimpan yang sama dapat menggerakkan penyegaran Excel, bilah sisi Google Sheets, percakapan Claude atau Cursor melalui Server PostgreSQL MCP, dan Sebuah endpoint REST yang menghadap mitra secara bersamaan. Anda membuat kueri sekali; Query Streams menangani antarmuka pengguna.

Tidak ada port Postgres yang terbuka, tidak ada kredensial yang dibagikan.

Model keamanan inilah alasan mengapa tim memilih ini daripada port basis data publik. Kata sandi PostgreSQL Anda hanya tersimpan di dalam penyimpanan kredensial terenkripsi Agen di jaringan Anda; kata sandi tersebut tidak pernah dikirimkan ke cloud kami dan tidak pernah terlihat oleh penerima. Selain itu, setiap endpoint memberi Anda kontrol per penerima yang dapat Anda perketat sebelum Anda membagikannya.

Agen Khusus Panggilan Keluar

Agen tersebut terhubung ke agent.querystreams.com pada port 443. Firewall Anda melihat HTTPS keluar normal — tidak ada port masuk, tidak ada VPN, tidak ada terowongan.

Penegakan hukum hanya baca

Validator berjalan di Agent, di jaringan Anda, sebelum pernyataan apa pun mencapai Postgres. Pernyataan non-SELECT ditolak dengan PELANGGARAN HANYA BACA.

Daftar IP + CORS yang diizinkan

Tetapkan kunci penerima ke IP atau rentang CIDR tertentu, dan batasi asal browser mana yang dapat menghubungi setiap titik akhir. Panggilan di luar daftar akan ditolak sebelum SQL dijalankan.

Batasan laju + kuota byte

Batasan laju dua tingkat (per kunci dan per titik akhir) ditambah batasan byte bulanan opsional menjaga penerima yang bising atau tidak terkendali tetap berada dalam radius ledakan yang aman.

Panggil API REST PostgreSQL Anda

Penerima memanggil endpoint seperti API REST lainnya: token bearer dan URL. Parameter kueri tersimpan apa pun yang Anda ekspos dapat diatur per panggilan — pada querystring untuk MENDAPATKAN atau dalam badan JSON untuk POSAgen tersebut mengikat nilai-nilai tersebut sebagai parameter prepared-statement yang tepat, bukan penggabungan string, sehingga penerima tidak dapat keluar dari filter untuk menyuntikkan SQL.

Permintaan GET dengan parameter filter.
# Panggilan penerima terhadap endpoint berbasis Postgres Anda keriting -H “Otorisasi: Pembawa qsapi_K7…ZmQ” \ “https://api.querystreams.com/v1/endpoints/orders-by-region?region=EMEA&since=2026-01-01”

Pilih format output per panggilan dengan Menerima judul (atau sebuah ?format= parameter kueri): JSON untuk satu array tunggal, CSV untuk spreadsheet dan pandas, atau, pada endpoint streaming, NDJSON (satu baris JSON per baris) untuk pipeline parse-as-you-go. Bagi konsumen yang sensitif terhadap bandwidth, pilih opsi ini. LZ4 kompresi muatan dengan Pengkodean yang Diterima: lz4; respons yang tidak terkompresi juga mendapatkan standar gzip secara otomatis melalui kabel. Untuk rincian lengkap tentang mode statis vs streaming, empat kombinasi kabel, dan generasi OpenAPI 3.1, lihat API REST instan untuk basis data SQL memandu.

Bagaimana penggunaan ditagih

Platform API termasuk dalam setiap paket dan menggunakan kuota byte bulanan yang sama dengan Excel, Google Sheets, dan Server MCP — LZ4 menagih berdasarkan byte terkompresi, jika tidak, berdasarkan byte yang tidak terkompresi. bagaimana alokasi byte bersama diukur →

Hubungkan ke Power BI, Tableau, dan apa pun yang dapat membaca JSON.

Karena setiap endpoint mengembalikan nilai standar. JSON — dengan CSV dan streaming NDJSON yang siap digunakan — alat apa pun yang dapat membaca feed REST akan langsung menggunakan data PostgreSQL Anda, tanpa perlu menginstal apa pun di pihak mereka. Power Query adalah jembatan termudah untuk masuk ke dalam ekosistem Microsoft BI: di Power BI memilih Dapatkan Data → Dari Web, tempel URL endpoint, tambahkan milik Anda Otorisasi header, dan Power Query mengurai JSON ke dalam tabel yang dapat diperbarui yang memberi makan model data Anda. (Untuk data langsung di dalam spreadsheet, fitur bawaan Add-on Excel untuk Query Streams (Ini adalah jalur yang lebih sederhana — Power Query tersedia jika Anda menginginkan data dalam model Power BI itu sendiri.)

Logo Microsoft Power Query Power Query Dapatkan Data → Dari Web, tempel URL dan token bearer, perluas JSON menjadi tabel yang dapat diperbarui.
Logo Microsoft Power BI Power BI Mesin Power Query yang sama — muat endpoint langsung ke dalam model Anda dan jadwalkan penyegaran.
Logo Tableau Tablo Arahkan Web Data Connector atau sumber JSON ke endpoint untuk dasbor langsung.
Logo tukang pos Tukang pos Impor spesifikasi OpenAPI 3.1, lalu kirim, periksa, dan bagikan permintaan hanya dengan satu klik.

Ini juga memberi makan n8n, Qlik, keriting, Python (permintaan atau pandas.read_json), Insomnia, Hoppscotch — atau skrip atau alur kerja apa pun yang dapat mengirim permintaan HTTP dan membaca JSON.

Berfungsi juga dengan Postgres terkelola.

Tidak masalah di mana PostgreSQL Anda berjalan. Agen terhubung dengan cara yang sama ke server lokal atau layanan terkelola — Amazon RDS untuk PostgreSQL dan Aurora PostgreSQL, Azure Database untuk PostgreSQL, Google Cloud SQL untuk PostgreSQL, Supabase, atau Neon. Untuk latensi terendah, sebarkan Agen di jaringan atau wilayah yang sama dengan basis data; satu akun Query Streams dapat menjalankan beberapa Agen di berbagai wilayah dan cloud, dan satu titik akhir berperilaku identik terlepas dari Agen mana yang melayaninya.

Lebih dari sekadar PostgreSQL

Alur kerja yang sama mempromosikan kueri tersimpan dari Microsoft SQL Server, MySQL, MariaDB, SQLite, Microsoft Access, Snowflake, Oracle, BigQuery, atau DuckDB ke titik akhir REST. PostgreSQL hanyalah salah satu titik awal yang paling populer. Jelajahi Panduan Penyiapan Konektor untuk daftar saat ini.

Pertanyaan yang Sering Diajukan

Apakah saya perlu membuka port atau mengekspos PostgreSQL ke internet? +
Tidak — Agen Jaringan melakukan panggilan keluar melalui TLS pada port 443, sehingga panggilan masuk kembali melalui satu koneksi keluar tersebut dan port PostgreSQL Anda (5432 (secara default) tidak pernah terekspos. Cara kerja koneksi khusus keluar →
Apakah penerima dapat melihat kredensial SQL atau basis data saya? +
Tidak pernah — penerima hanya melihat URL endpoint, respons, dan filter yang Anda tampilkan, sementara kata sandi SQL dan PostgreSQL Anda tetap berada di dalam penyimpanan kredensial terenkripsi Agen di jaringan Anda. Apa yang tetap bersifat pribadi di balik setiap kunci →
Apa perbedaannya dengan PostgREST atau Hasura? +
PostgREST dan Hasura menghasilkan antarmuka API yang luas di atas skema Anda dan berjalan sebagai layanan yang Anda host, amankan, dan jaga agar tetap dapat diakses dari Postgres. Query Streams mengambil sudut pandang yang berlawanan, lebih sempit, untuk berbagi data keluar: Anda mengekspos satu kueri yang tersimpan sebagai satu titik akhir, setiap penerima mendapatkan kunci yang dapat dicabut sendiri, setiap panggilan diaudit, dan tidak ada yang perlu Anda sebarkan atau tambal. Banyak tim menjalankan keduanya — alat internal seperti PostgREST ditambah Query Streams untuk berbagi data di luar gedung.
Format output apa saja yang dapat dikembalikan oleh API? +
JSON (standar), CSV, dan — pada endpoint streaming — NDJSON, dipilih per panggilan dengan Menerima judul atau ?format= parameter, dengan kompresi payload LZ4 opsional. Format data dan opsi kompresi →
Apakah penerima dapat memfilter hasilnya, ataukah mereka mendapatkan kueri tetap? +
Anda yang memutuskan. Parameter apa pun yang Anda tampilkan dalam kueri yang tersimpan akan menjadi filter yang dapat diatur penerima per panggilan — pada querystring untuk MENDAPATKAN atau badan JSON untuk POSParameter yang tidak Anda ekspos akan tetap. Agen mengikat setiap nilai sebagai parameter prepared-statement, sehingga filter tidak dapat digunakan untuk menyisipkan SQL.
Apakah sebuah endpoint dapat kedaluwarsa atau menghancurkan diri sendiri? +
Ya — sebuah endpoint dapat bersifat permanen, kedaluwarsa pada tanggal tertentu, atau memiliki anggaran panggilan tetap, dan Anda dapat mencabut kunci penerima mana pun secara instan tanpa menyentuh yang lain atau mengubah kata sandi basis data Anda. Masa berlaku endpoint dan pencabutan kunci per penerima →
Apakah ini kompatibel dengan Amazon RDS, Azure, Cloud SQL, Supabase, atau Neon? +
Ya. Agen terhubung ke PostgreSQL mana pun yang dapat dijangkau, baik yang berada di lokasi sendiri maupun yang dikelola — Amazon RDS dan Aurora PostgreSQL, Azure Database for PostgreSQL, Google Cloud SQL for PostgreSQL, Supabase, dan Neon semuanya berfungsi. Untuk latensi terbaik, jalankan Agen di wilayah yang sama dengan basis data; satu akun dapat menjalankan beberapa Agen di berbagai cloud dan wilayah.
Apakah penerima memerlukan akun Query Streams? +
Berbagi melalui email disarankan — penerima akan mendapatkan klaim tautan ajaib dan organisasi tingkat gratis yang dibuat secara otomatis — atau Anda dapat menerbitkan kunci layanan untuk akses mesin ke mesin tanpa pengawasan. klaim per penerima versus kunci layanan →

Memulai

Publikasikan API REST PostgreSQL pertama Anda secara gratis.

Daftar, instal Network Agent di samping database Postgres Anda, simpan kueri SQL, dan kirimkan klaim magic-link kepada penerima melalui email. Kunci per penerima, penegakan akses baca saja, dan jejak audit lengkap aktif sejak panggilan pertama.

Panduan terkait: API REST instan untuk basis data SQL | Platform REST API basis data | Hubungkan PostgreSQL ke Claude melalui MCP | Panduan Penyiapan Konektor

Kategori: Platform API

Tag: postgres-rest-api, postgresql, rest-api, expose-postgres-as-api, postgrest-alternative, share-postgres-data, per-recipient-keys, no-code-api, database-rest-api

Deskripsi Meta: Ubah kueri PostgreSQL menjadi API REST baca-saja yang aman dengan kunci per penerima — tanpa port terbuka, tanpa PostgREST, tanpa kode.

Updated on 16 Juni 2026

Powered by BetterDocs