PostgREST,適用於用Haskell編寫的任何PostgreSQL數據庫的REST API

PostgREST徽標

後插入。 是一個獨立的Web服務器, 將任何PostgreSQL數據庫直接轉換為RESTful API。 寫在Haskell, 提供了更清潔,更符合標準的AP。 而結構約束和數據庫權限決定了端點和API操作。

PostgREST文檔將其描述為“手動CRUD編程的替代方法”。 PostgREST是一個開源中間件 並且PostgREST公開的API符合OpenAPI規範(以前稱為Swagger規範)。 根據其文檔,它本機管理數據庫表之間的依賴關係,從而使您可以通過簡單的REST請求從兩個表之間的聯接中檢索數據。

PostgREST將非常快,響應時間不到一秒鐘 在Heroku免費層上每秒最多可處理2000個請求。

該團隊說:“如果您習慣用解釋性語言編寫的服務器,請準備好對PostgREST的性能感到驚喜。”

團隊認為,三個因素會提高速度.

  1. 首先, 服務器是用Haskell編寫的 使用HTTP Warp服務器(一種編譯語言)。
  2. 那麼, 將盡可能多的計算委託給數據庫,包括將JSON響應直接序列化為SQL,驗證數據等。
  3. 最後, 使用Hasql庫維護數據庫連接池(PostgreSQL二進制協議),並且保持無狀態以允許水平縮放。

後插入。 處理身份驗證(通過JSON Web令牌) 並將授權委派給數據庫中定義的角色信息。 這樣可以確保只有一個聲明性的真相來源可以保證安全。

在處理數據庫時, 服務器採用當前已認證用戶的身份 在連接期間,它無法執行用戶自己無法執行的任何操作。 可以在JWT原語中構造其他形式的身份驗證。

另一方面 關於數據完整性,PostgREST 而不是依賴對象關係映射器 (ORM)和自定義命令式編碼, 該系統直接在數據庫上施加聲明性約束。

因此,沒有任何應用程序可以損害您的數據(包括您的API服務器)。 PostgREST為HTTP接口提供了各種備份,以避免出現問題,包括應用PUT請求。 換句話說,不涉及ORM。

新視圖的創建在SQL中具有已知的性能影響。 關於PostgREST的妙處在於,數據庫管理員可以從頭開始創建API,而無需自定義編程。

對於一些, PostgREST還是NoSQL或GraphQL數據庫的有趣替代品 如果需要維護關係模型,則在API中本地公開。 他們感到遺憾的是,這種中間件在大型Linux發行版的軟件包存儲庫中沒有作為標準配置提供。

如何在Linux上安裝PostgREST?

去年6.0.2月發布了XNUMX版,其中添加了新功能並進行了一些更改。 該版本可以從github獲得。

鏈接是這個。

相似地,對於有興趣安裝PostgREST的人, 他們應該知道,現在可以在終結器的幫助下獲得當前版本。 僅在其中輸入:

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-linux-x64-static.tar.xz

現在,他們只需要使用以下命令解壓縮該軟件包:

tar Jxf postgrest-v6.0.2-linux-x64-static.tar.xz

在使用64位版本的Ubuntu的特殊情況下:

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-ubuntu.tar.xz
tar Jxf postgrest-v6.0.2-ubuntu.tar.xz

或針對使用32位版本的Ubuntu的用戶

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-ubuntui386.tar.xz
tar Jxf postgrest-v6.0.2-ubuntui386.tar.xz

他們可以運行:

./postgrest --help

以相同的方式,準備了一個Docker映像,可以通過輸入以下內容獲得:

碼頭工人拉postgrest / postgrest

最後,您可以從其網站上的文檔中獲取有關其配置的更多信息。 鏈接是這個。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。