發布 PostgREST 9.0.0,用於將資料庫轉變為 RESTful API 的附加元件

PostgREST 9.0.0 發布,這是一個單獨運行的 Web 伺服器,實作了 PostgreSQL DBMS 的輕量級附加元件,將現有資料庫中的物件轉換為 RESTful API。 PostgREST 不是將關聯式資料對應到物件 (ORM),而是直接在資料庫中建立視圖。資料庫端也處理 JSON 回應的序列化、資料驗證和授權。系統效能足以在典型伺服器上每秒處理多達 2000 個請求。該專案程式碼是用 Haskell 編寫的,並根據 MIT 許可證分發。

例如,僅使用資料庫權限機制,您可以透過 HTTP 授予對資料(資料表、檢視類型和預存程序)的存取權限。在這種情況下,無需對此類轉換進行編碼,通常一個 GRANT 命令就足以透過 REST API 使該表可用。可以透過令牌(JWT)配置存取並透過使用動態行級安全性(行級安全性)來組織「多租戶」。

從架構上來說,PostgREST 推動了資料導向的架構(Data-Oriented Architecture),其中微服務本身不保存狀態,而是使用對資料的單一存取(資料存取層)來實現這一點。

發布 PostgREST 9.0.0,用於將資料庫轉變為 RESTful API 的附加元件

新版本的變化包括:

  • 分區表被加入到儲存模式快取中,這使得此類表可以在位置回應中嵌入 UPSERT 和 INSERT 操作、執行 OPTIONS 查詢並實作 OpenAPI 支援。
  • 透過 RPC POST,允許使用一個未命名參數來呼叫函數。
  • 允許使用一個 JSON 參數呼叫函數,而不需要「Prefer: params=single-object」標頭。
  • 允許使用帶有「Content-Type: application/octet-stream」的請求將 bytea 類型的資料載入到函數中。
  • 允許使用“Content-Type:text/plain”查詢將文字載入到函數中。
  • 增加了對雙括號內轉義字元的支持,例如“?col=in.("Double\"Quote")、?col=in.("Back\\slash")"。
  • 提供了基於內建過濾器(“/projects?select=*,clients!inner(*)&clients.id=eq.12”)過濾一級資源的功能。
  • “is”運算符允許值“unknown”。
  • 已實現與 PostgreSQL 14 的兼容性,並且已停止對 PostgreSQL 9.5 的支援。

來源: opennet.ru

添加評論