TL;DR
PostgREST là một web server độc lập biến bất kỳ database PostgreSQL nào thành một REST API đầy đủ — tự động, không cần viết backend. Cấu trúc bảng, view, stored procedure và quyền truy cập trong DB sẽ chính là API. Phiên bản mới nhất v14.10 ra ngày 2026-04-16, có hơn 27.000 sao trên GitHub, viết bằng Haskell, MIT license, và là engine REST nằm dưới Supabase.
Có gì mới
PostgREST không phải tool mới — nhưng nó vừa được @tom_doerr nhắc lại trên X như một "underrated dev tool" đáng dùng năm 2026. Lý do đơn giản: trong khi cả ngành đang chạy theo BaaS phức tạp, PostgREST vẫn giữ triết lý gốc của nó — một binary, một file config, một database. Hết.
- v14.10 (2026-04-16): cải thiện thông báo lỗi, OpenAPI spec chính xác hơn, hot-reload schema qua
NOTIFY. - Được Supabase, Neon, Cybertec tài trợ và dùng nội bộ.
- Đã có managed offering trên Aiven, Neon, Supabase — không cần tự host nếu không muốn.
Vì sao đáng quan tâm
Nếu bạn từng viết một service Express/FastAPI chỉ để trả về SELECT * FROM users WHERE id = ?, bạn biết cảm giác lãng phí. PostgREST loại bỏ toàn bộ lớp middle đó. Schema của bạn đã định nghĩa: bảng nào, cột nào, ai được đọc cột nào (qua Row Level Security). Vậy tại sao phải lặp lại logic đó trong code Node.js/Python?
The structural constraints and permissions in the database determine the API endpoints and operations.
Nói cách khác: database là single source of truth, kể cả cho API surface. Sửa schema → API tự cập nhật ngay lập tức (qua tín hiệu NOTIFY), không cần redeploy server.
Sự thật kỹ thuật
Dưới capo, PostgREST là một bộ máy hiệu năng cao được tinh chỉnh cẩn thận:
| Thuộc tính | Giá trị |
|---|---|
| Ngôn ngữ chính | Haskell (66.6%) |
| HTTP server | Warp |
| DB driver | Hasql (binary protocol, prepared statements) |
| Throughput | ~2.000 req/s/instance |
| State | Stateless — scale ngang dễ dàng |
| Auth | JWT + PostgreSQL roles + RLS |
| OpenAPI | Swagger 2.0 auto-generated tại root |
| License | MIT |
| GitHub stars | 27.000+ |
Mọi feature truy vấn bạn cần đều có sẵn qua query string: filtering (?age=gte.18), ordering, pagination (Range header), embedding/join qua foreign key (?select=*,posts(*)), full-text search, JSON operators, GeoJSON. Stored procedure được expose thành endpoint /rpc/{tên_hàm}.
So sánh với Hasura, Supabase, custom backend
| Tool | API style | Stack | Phù hợp khi |
|---|---|---|---|
| PostgREST | REST + OpenAPI | Chỉ PostgreSQL | SQL mạnh, muốn REST tối giản |
| Hasura | GraphQL-first | Postgres + nhiều DB khác | GraphQL-native, multi-DB |
| Supabase | REST (PostgREST bên trong) + Realtime | Managed full-stack | BaaS, cần auth/storage/realtime sẵn |
| Express/FastAPI | Tuỳ ý | Tuỳ ý | Business logic phức tạp |
Điểm mấu chốt: chọn Supabase = đang dùng PostgREST, chỉ thêm UI quản trị, auth và storage bên trên. Nếu bạn không cần đống tiện ích đó, dùng PostgREST trần sẽ nhẹ hơn, rẻ hơn, kiểm soát hơn.
Use case thực tế
- Internal admin dashboard / CRUD panel: trỏ frontend (React/Vue) vào API auto-generated, xong.
- Mobile/web app multi-tenant: dùng RLS cô lập dữ liệu theo
tenant_id, JWT chứarole+tenant. - MVP / prototype nhanh: từ
CREATE TABLEđến API chạy được trong vài phút. - Data layer cho microservice: expose một bounded context bằng schema riêng, version qua schema (
api_v1,api_v2). - Read-only analytics API: bọc các view và stored proc thành endpoint dạng data product.
Ai hưởng lợi nhiều nhất? Indie hacker, solo dev, team nhỏ — những người không muốn tốn 2 tuần dựng CRUD server cho mỗi project mới.
Hạn chế & chi phí
PostgREST miễn phí, MIT, self-hosted. Chi phí duy nhất là hạ tầng. Nhưng đổi lại, có vài giới hạn cần biết trước:
- Không có GUI — mọi cấu hình đều bằng SQL + một file
postgrest.conf. - Yêu cầu SQL/RLS chắc tay; logic nghiệp vụ phi-CRUD phải viết bằng PL/pgSQL hoặc tách service riêng.
- Không có sẵn auth UI, email, file storage, realtime — đây không phải full BaaS. Cần mấy thứ đó thì dùng Supabase.
- API surface bám sát schema — refactor cột phải cẩn thận để không break client.
- Endpoint không-CRUD phải làm qua stored procedure (RPC).
Tiếp theo là gì
Roadmap GitHub đang đẩy mạnh observability, async notifications và mở rộng query syntax. Hệ sinh thái quanh PostgREST cũng đang lớn: Neon và Aiven đều ship managed PostgREST, subzero bán bản thương mại với extension. Trong bối cảnh các team đang "giảm cân" stack — bớt service, bớt code phải maintain — một công cụ chỉ làm một việc và làm rất tốt như PostgREST đang được nhìn lại đúng giá trị.
Nguồn: GitHub PostgREST, PostgREST Docs v14, Supabase, DreamFactory analysis.