Phát hành PostgREST 9.0.0, tiện ích bổ sung để biến cơ sở dữ liệu thành API RESTful

Việc phát hành PostgREST 9.0.0 đã diễn ra, một máy chủ web hoạt động riêng biệt với việc triển khai một tiện ích bổ sung nhẹ cho Cơ sở dữ liệu PostgreSQL, dịch các đối tượng từ cơ sở dữ liệu hiện có sang API RESTful. Thay vì ánh xạ dữ liệu quan hệ vào các đối tượng (ORM), PostgREST tạo các khung nhìn trực tiếp trong cơ sở dữ liệu. Phía cơ sở dữ liệu cũng xử lý việc tuần tự hóa các phản hồi JSON, xác thực dữ liệu và ủy quyền. Hiệu suất hệ thống đủ để xử lý tới 2000 yêu cầu mỗi giây trên một máy chủ thông thường. Mã dự án được viết bằng Haskell và được phân phối theo giấy phép MIT.

Ví dụ: chỉ sử dụng cơ chế đặc quyền cơ sở dữ liệu, bạn có thể cấp quyền truy cập vào dữ liệu (bảng, kiểu xem và thủ tục được lưu trữ) qua HTTP. Trong trường hợp này, không cần phải mã hóa bản dịch như vậy và thường một lệnh GRANT là đủ để cung cấp bảng thông qua API REST. Có thể định cấu hình quyền truy cập bằng mã thông báo (JWT) và tổ chức “đa quyền” thông qua việc sử dụng bảo mật cấp hàng động (Row Level Security).

Về mặt kiến ​​trúc, PostgREST hướng tới kiến ​​trúc hướng dữ liệu (Kiến trúc hướng dữ liệu), trong đó các dịch vụ vi mô không tự lưu trạng thái mà sử dụng một quyền truy cập duy nhất vào dữ liệu (Lớp truy cập dữ liệu) cho việc này.

Phát hành PostgREST 9.0.0, tiện ích bổ sung để biến cơ sở dữ liệu thành API RESTful

Trong số những thay đổi trong phiên bản mới:

  • Các bảng được phân vùng đã được thêm vào bộ đệm lược đồ lưu trữ, giúp các bảng đó có thể nhúng các hoạt động UPSERT và INSERT trong phản hồi Vị trí, thực thi các truy vấn OPTIONS và triển khai hỗ trợ OpenAPI.
  • Thông qua RPC POST, nó được phép gọi các hàm với một tham số chưa được đặt tên.
  • Được phép gọi các hàm có một tham số JSON mà không cần tiêu đề “Ưu tiên: params=single-object”.
  • Được phép tải dữ liệu kiểu bytea vào các hàm bằng cách sử dụng truy vấn với “Content-Type: application/octet-stream”.
  • Được phép tải văn bản vào các hàm bằng truy vấn có "Loại nội dung: văn bản/thuần túy".
  • Đã thêm hỗ trợ để thoát các ký tự bên trong dấu ngoặc kép, ví dụ: "?col=in.("Double\"Quote"), ?col=in.("Back\\slash")".
  • Khả năng lọc tài nguyên cấp một dựa trên các bộ lọc tích hợp (“/projects?select=*,clients!inner(*)&clients.id=eq.12” đã được cung cấp.
  • Toán tử "is" cho phép giá trị "không xác định".
  • Đã đạt được khả năng tương thích với PostgreSQL 14 và ngừng hỗ trợ cho PostgreSQL 9.5.

Nguồn: opennet.ru

Thêm một lời nhận xét