Hướng Dẫn Cài Đặt và Sử Dụng PostgREST API Cho Người Mới Bắt Đầu

Ashley Goolam

Ashley Goolam

14 tháng 11 2025

Hướng Dẫn Cài Đặt và Sử Dụng PostgREST API Cho Người Mới Bắt Đầu

Apidog cho doanh nghiệp

Triển khai tại chỗ

SSO & RBAC

Tuân thủ SOC 2

Khám phá Apidog Enterprise

Bạn đã bao giờ tự hỏi các nhà phát triển dành bao nhiêu thời gian để xây dựng các API RESTful trên nền tảng cơ sở dữ liệu PostgreSQL chưa? Việc này thường liên quan đến việc viết mã boilerplate cho các hoạt động CRUD, xử lý truy vấn và đảm bảo bảo mật—những công việc có thể làm chậm đà phát triển dự án của bạn. Đây là lúc API PostgREST xuất hiện, mang đến một giải pháp thay thế tinh gọn, biến cơ sở dữ liệu của bạn thành một API sẵn sàng sử dụng với nỗ lực tối thiểu. Trong hướng dẫn toàn diện này, chúng ta sẽ khám phá API PostgREST một cách sâu sắc, từ các khái niệm nền tảng đến việc triển khai thực tế. Cho dù bạn là một kỹ sư backend muốn tăng tốc phát triển hay một nhà phát triển full-stack tìm kiếm hiệu quả, việc thành thạo API PostgREST có thể thay đổi quy trình làm việc của bạn.

Khi chúng ta cùng nhau tìm hiểu chủ đề này, tôi sẽ chia sẻ những hiểu biết sâu sắc từ kinh nghiệm thực tế, đảm bảo mỗi phần được xây dựng một cách logic dựa trên phần trước. Khi kết thúc, bạn sẽ cảm thấy tự tin để tích hợp API PostgREST vào dự án tiếp theo của mình. Hãy bắt đầu với những điều cơ bản.

💡
Bạn muốn một công cụ kiểm thử API tuyệt vời giúp tạo Tài liệu API đẹp mắt?

Bạn muốn một nền tảng tích hợp, tất cả trong một cho Đội ngũ phát triển của mình để làm việc cùng nhau với năng suất tối đa?

Apidog đáp ứng mọi yêu cầu của bạn và thay thế Postman với mức giá phải chăng hơn nhiều!
nút

API PostgREST là gì? Tổng quan

API PostgREST là một công cụ độc lập tự động biến cơ sở dữ liệu PostgreSQL của bạn thành một dịch vụ web RESTful đầy đủ chức năng. Được phát triển bởi Beowulf, nó tận dụng sức mạnh của ngôn ngữ truy vấn PostgreSQL (SQL) để tạo các điểm cuối HTTP một cách linh hoạt, loại bỏ nhu cầu về logic phía máy chủ tùy chỉnh trong nhiều trường hợp. Về cơ bản, API PostgREST diễn giải các lược đồ cơ sở dữ liệu, bảng, chế độ xem và thủ tục lưu trữ dưới dạng tài nguyên API, cho phép bạn thực hiện các hoạt động tạo, đọc, cập nhật và xóa (CRUD) thông qua các phương thức HTTP tiêu chuẩn như GET, POST, PUT và DELETE.

Điều làm cho API PostgREST đặc biệt hấp dẫn là sự tuân thủ các nguyên tắc REST trong khi tích hợp các tính năng PostgreSQL nâng cao như Bảo mật cấp hàng (RLS) để kiểm soát quyền truy cập chi tiết. Ví dụ, bạn có thể truy vấn dữ liệu với các bộ lọc, sắp xếp và phân trang bằng cách sử dụng các tham số URL—không cần thêm middleware. Cách tiếp cận này không chỉ giảm độ phức tạp của mã mà còn đảm bảo API của bạn luôn đồng bộ với các thay đổi của cơ sở dữ liệu một cách tự động.

Trong bối cảnh bị chi phối bởi các ORM và framework API, API PostgREST nổi bật với triết lý "ưu tiên cơ sở dữ liệu". Nó hỗ trợ tài liệu OpenAPI (Swagger) ngay từ đầu, giúp các nhà phát triển dễ dàng tích hợp với các công cụ như Apidog hoặc Swagger UI. Nếu bạn quản lý các ứng dụng chuyên sâu về dữ liệu—hãy nghĩ đến bảng điều khiển phân tích, backend di động hoặc microservices—API PostgREST cung cấp một giải pháp nhẹ, hiệu suất cao, mở rộng với sự mạnh mẽ của PostgreSQL. Khi chúng ta tiếp tục, bạn sẽ thấy API này kết nối lớp dữ liệu và ứng dụng khách của bạn một cách liền mạch như thế nào.

postgresql

Bắt đầu với API PostgREST: Cài đặt và Thiết lập

Để bắt đầu làm việc với API PostgREST, bạn cần có một phiên bản PostgreSQL, vì nó đóng vai trò là nền tảng. May mắn thay, việc thiết lập rất đơn giản, đặc biệt khi sử dụng các công cụ container hóa như Docker, giúp cô lập các phụ thuộc và đơn giản hóa việc triển khai. Bắt đầu bằng cách đảm bảo Docker Desktop đã được cài đặt trên máy của bạn—tải xuống từ trang web chính thức cho hệ điều hành của bạn (macOS, Windows hoặc Linux).

docker desktop

Khi Docker đã sẵn sàng, hãy kéo các image cần thiết. Mở Docker Desktop, điều hướng đến thanh tìm kiếm và cài đặt image "postgrest/postgrest" cho chính máy chủ API. Tương tự,

cài đặt postgrest trong docker

tìm kiếm và cài đặt "dpage/pgadmin4" để quản lý cơ sở dữ liệu PostgreSQL của bạn một cách trực quan.

cài đặt pgadmin4 trong docker desktop

và "postgres:alpine" cho một container PostgreSQL nhẹ. Các thành phần này tạo thành hệ sinh thái xung quanh API PostgREST.

Để thiết lập PostgreSQL thủ công qua terminal (Khuyến nghị), hãy thực thi lệnh sau để chạy một container:

docker run --name postgres-1 -e POSTGRES_PASSWORD=password -d -p 5431:5432 postgres:alpine

Ở đây, hãy thay thế "password" bằng một giá trị bảo mật. Lệnh này khởi chạy PostgreSQL trên cổng 5431, ánh xạ tới cổng nội bộ 5432. Sau khi thành công, Docker sẽ trả về một ID container (một chuỗi chữ và số dài)—hãy ghi lại nó để xác minh. Chạy docker ps để xác nhận trạng thái của container.

xác minh cài đặt postgres trong docker

Để xác minh các vai trò người dùng, điều quan trọng đối với cấu hình API PostgREST, hãy vào shell của container:

docker exec -it <container_id> sh

Thay thế <container_id> bằng ID hoặc tên container của bạn. Bên trong shell, kết nối với PostgreSQL:

psql -U postgres -d postgres

(Giả sử "postgres" là người dùng mặc định; điều chỉnh nếu đã tùy chỉnh. Giống như của tôi đã được thay đổi thành username) Sau đó, liệt kê các vai trò bằng \du. Đầu ra này, bao gồm các tên vai trò như "postgres" hoặc các vai trò tùy chỉnh, sẽ được tham chiếu sau. Bạn có thể tạo thêm người dùng ở đây và gán quyền, chẳng hạn như cấp SELECT, INSERT, UPDATE hoặc DELETE trên các lược đồ.

xem tên vai trò postgres docker

Với các điều kiện tiên quyết này, bạn đã sẵn sàng để điều phối môi trường của mình bằng Docker Compose—một tệp YAML định nghĩa các ứng dụng đa container. Tạo một tệp docker-compose.yaml trong thư mục dự án của bạn:

version: "3.9"
services:
  postgres_host:
    image: postgres:alpine
    environment:
      POSTGRES_USER: username
      POSTGRES_PASSWORD: password
      POSTGRES_DB: postgres
    volumes:
      - pgdata:/var/lib/postgresql/data
    ports:
      - "5431:5432"
  pgadmin:
    image: dpage/pgadmin4
    ports:
      - "5050:80"
    depends_on:
      - postgres_host
    environment:
      PGADMIN_DEFAULT_EMAIL: postgres@pgadmin.com
      PGADMIN_DEFAULT_PASSWORD: postgres
  postgrest:
    image: postgrest/postgrest
    depends_on:
      - postgres_host
    ports:
      - "3000:3000"
    environment:
      PGRST_DB_URI: "postgres://username:password@postgres_host:5432/postgres"
      PGRST_DB_SCHEMA: "public"
      PGRST_DB_ANON_ROLE: "username"
volumes:
  pgdata:

Tùy chỉnh "username" và "password" để khớp với thiết lập của bạn, và đặt PGRST_DB_ANON_ROLE thành một vai trò từ đầu ra \du của bạn để truy cập ẩn danh. Cấu hình này liên kết PostgreSQL, pgAdmin và máy chủ API PostgREST. Lưu tệp, sau đó trong terminal của bạn (ví dụ: terminal tích hợp của VS Code, sau khi cài đặt tiện ích mở rộng Docker), chạy:

docker compose up --build

Lệnh này xây dựng và khởi động các dịch vụ. Truy cập pgAdmin tại http://localhost:5050 bằng thông tin đăng nhập từ tệp YAML, thêm một máy chủ có tên "postgres_host" với chi tiết kết nối (Hostname: postgres_host, Port: 5432, Username: username, Password: password), và lưu. Giờ đây bạn đã có một API PostgREST đang chạy tại http://localhost:3000, sẵn sàng cho các tương tác cơ sở dữ liệu.

thực thi các container docker trong vs code

Xây dựng Dự án Mẫu: Kiểm thử API PostgREST từng bước

Để thực sự đánh giá cao API PostgREST, hãy cùng xây dựng một dự án thực tế: một API cơ sở dữ liệu nhân sự đơn giản để quản lý hồ sơ nhân viên. Ví dụ này minh họa các hoạt động CRUD trên bảng "humans", sử dụng Docker để điều phối và Apidog để kiểm thử API.

Bước 1: Chuẩn bị Môi trường của bạn

Với Docker Desktop đã được cài đặt và các image đã được kéo (PostgREST, pgAdmin4, postgres:alpine), hãy chạy container PostgreSQL ban đầu như đã nêu trước đó. Xác minh bằng docker ps và ghi lại các vai trò người dùng qua \du.

Bước 2: Soạn thảo Stack của bạn

Trong một trình soạn thảo mã như VS Code (được tăng cường với tiện ích mở rộng Docker để quản lý container liền mạch), hãy tạo tệp docker-compose.yaml như trên. Đảm bảo tên image khớp chính xác—sự không khớp có thể làm ngừng khởi động. Điều chỉnh cổng nếu cần, nhưng giữ cổng ngoài của PostgreSQL (5431) nhất quán với thiết lập thủ công của bạn. Khởi chạy bằng docker compose up --build. Theo dõi nhật ký để tìm lỗi; khởi động thành công sẽ hiển thị các dịch vụ liên kết với các cổng 5431 (DB), 5050 (pgAdmin) và 3000 (PostgREST).

Bước 3: Cấu hình pgAdmin và Tạo Bảng

Điều hướng đến http://localhost:5050, đăng nhập bằng PGADMIN_DEFAULT_EMAIL và PASSWORD từ tệp YAML.

đăng nhập vào pgadmin4 được lưu trữ trên docker

Dưới bảng điều khiển,

thêm máy chủ mới trong pg admin

thêm một máy chủ mới: Đặt tên là "postgres_host",

tên máy chủ postgres

sau đó trong tab Connection, nhập Hostname: postgres_host, Port: 5432, Username: username, Password: password. Lưu để truy cập giao diện.

lưu cấu hình cơ sở dữ liệu postgres mới

Tạo một bảng: Đi tới Databases > postgres > Schemas > public > Tables, nhấp chuột phải vào Tables, và chọn Create > Table. Đặt tên là "humans". Trong Columns, thêm:

tạo một bảng
tạo cột mới cho bảng

Nhấp vào Save. Để chèn dữ liệu, nhấp chuột phải vào bảng "humans" > Scripts > INSERT Script. Sửa đổi bằng SQL mẫu, ví dụ:

INSERT INTO public.humans (id, name, job) VALUES (1, 'Steph Curry', 'Pro Basketball Player');

Thực thi để lưu bản ghi.

thực thi một script

Bước 4: Xác minh khả dụng của API PostgREST

Mở http://localhost:3000 trong trình duyệt của bạn. Bạn sẽ thấy một tài liệu đặc tả Swagger 2.0 liệt kê các tài nguyên như /humans—xác nhận rằng API PostgREST đang hoạt động và nhận biết lược đồ.

đặc tả swagger 2.0

Bước 5: Kiểm thử với Apidog

Khởi chạy Apidog, tạo một dự án mới và thêm yêu cầu GET tới http://localhost:3000/humans (thay thế "humans" bằng tên bảng của bạn). Gửi yêu cầu; nó trả về JSON như sau:

[
  {
    "id": 1,
    "name": "Steph Curry",
    "job": "Pro Basketball Player"
  }
]
thực hiện yêu cầu get trong apidog với postgrest

Để truy vấn, thêm một Tham số truy vấn: Khóa "name", Giá trị "eq.Steph Curry" (trong đó "eq" biểu thị sự bằng nhau). Điều này lọc để khớp với các bản ghi; các bản ghi không khớp sẽ trả về mảng trống.

kiểm thử với postgrest với dữ liệu sai
Sử dụng dữ liệu sai để tìm kiếm
sử dụng dữ liệu đúng để tìm kiếm trong apidog với postgrest api
Sử dụng thông tin chính xác để tìm kiếm

Bước 6: Khám phá các Hoạt động CRUD

API PostgREST nổi bật trong việc thực hiện CRUD đầy đủ. Đối với POST (tạo), sử dụng nội dung của Apidog dưới dạng JSON: {"name": "New Employee", "job": "Developer"} tới http://localhost:3000/humans. PUT cập nhật qua http://localhost:3000/humans?id=eq.1 với dữ liệu đã vá. DELETE sử dụng http://localhost:3000/humans?id=eq.1. Các bộ lọc nâng cao như sắp xếp (order=name.asc) hoặc giới hạn (limit=5) tăng cường khả năng sử dụng. Để có các ví dụ đầy đủ, hãy tham khảo tài liệu chính thức tại https://docs.postgrest.org/en/v14/references/api/tables_views.html.

Dự án này, kéo dài dưới một giờ, minh họa khả năng của API PostgREST trong việc tạo mẫu nhanh. Mở rộng nó bằng cách thêm các chính sách RLS trong PostgreSQL để truy cập an toàn, dựa trên vai trò.

Các câu hỏi thường gặp

Q1. Yêu cầu hệ thống để chạy API PostgREST là gì?

Trả lời: API PostgREST yêu cầu PostgreSQL 9.4 trở lên, với Docker được khuyến nghị cho các thiết lập container hóa. Nó chạy hiệu quả trên phần cứng khiêm tốn, cần ít nhất 512MB RAM cho các hoạt động cơ bản.

Q2. API PostgREST có thể xử lý các truy vấn phức tạp ngoài CRUD cơ bản không?

Trả lời: Có, nó hỗ trợ đầy đủ các khả năng SQL của PostgreSQL thông qua các lệnh gọi RPC nhúng và chế độ xem, cho phép các phép nối, tổng hợp và các hàm tùy chỉnh được hiển thị dưới dạng điểm cuối.

Q3. API PostgREST đảm bảo bảo mật dữ liệu như thế nào?

Trả lời: Nó tích hợp nguyên bản với Bảo mật cấp hàng (Row-Level Security) và các quyền dựa trên vai trò của PostgreSQL, thực thi kiểm soát truy cập ở cấp cơ sở dữ liệu mà không có lỗ hổng phía API.

Q4. API PostgREST có phù hợp cho môi trường sản xuất không?

Trả lời: Hoàn toàn có, với các tính năng như xác thực JWT, cô lập lược đồ và mở rộng theo chiều ngang thông qua nhiều phiên bản. Giám sát hiệu suất và áp dụng RLS để tuân thủ.

Q5. Làm cách nào để tích hợp API PostgREST với các framework frontend?

Trả lời: Sử dụng các HTTP client như Axios hoặc Fetch; tạo các loại TypeScript từ các đặc tả OpenAPI để đảm bảo an toàn kiểu trong các ứng dụng React, Vue hoặc Angular.

Kết luận

Khi nhìn lại hành trình khám phá của chúng ta, API PostgREST nổi lên như một giải pháp thanh lịch cho phát triển dựa trên cơ sở dữ liệu, chuyển đổi sức mạnh của PostgreSQL thành các dịch vụ web dễ tiếp cận. Từ thiết lập dễ dàng đến truy vấn phức tạp, nó giúp bạn cung cấp các API mạnh mẽ với ít chi phí hơn. Tôi khuyến khích bạn tái tạo dự án mẫu và thử nghiệm thêm—có thể mở rộng nó với xác thực. Khi các ứng dụng của bạn phát triển, API PostgREST sẽ chứng tỏ là một đồng minh không thể thiếu trong việc duy trì sự linh hoạt và độ tin cậy.

💡
Bạn muốn một công cụ kiểm thử API tuyệt vời giúp tạo Tài liệu API đẹp mắt?

Bạn muốn một nền tảng tích hợp, tất cả trong một cho Đội ngũ phát triển của mình để làm việc cùng nhau với năng suất tối đa?

Apidog đáp ứng mọi yêu cầu của bạn và thay thế Postman với mức giá phải chăng hơn nhiều!
nút

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API