開發者現在可以使用Hasura GraphQL引擎,存取Azure Database上的PostgreSQL資料庫,該引擎還提供開發者介面,除了能瀏覽GraphQL API,也可以方便地管理資料庫架構以及資料。

GraphQL為API查詢語言,也是一個用於資料庫查詢在伺服器端執行的Runtime,GraphQL的好處是可以直接透過API描述需要的資料,讓前端開發人員對資料庫欄位進行CRUD查詢,而不用多次的以Rest API進行呼叫,才能拼湊出需要的資料,透過減少向後端呼叫的次數,加快網頁應用程式的速度。GraphQL為REST API的替代解決方案,目前被廣泛的應用在於加速產品開發周期。

而輕量級開源Hasura GraphQL引擎,可以為Postgres資料庫提供即時的GraphQL API,該引擎附帶了管理開發者介面,可以幫助開發者瀏覽GraphQL API,並管理資料庫架構以及資料。Hasura GraphQL引擎還能讓開發者以架構拼接(Schema-Stitching)的方式,撰寫自定義的解析器,並整合能被資料庫事件觸發的無伺服器函式或是微服務API。

現在Azure提供開發者一鍵部署的功能,可以在部署Azure Database上的PostgreSQL伺服器的同時,快速地取得GraphQL API。當開發者已經在Azure Database上運行PostgreSQL資料庫,也可以將Hasura GraphSQL引擎連接到該資料庫,並開始使用GraphQL API,這個動作不會影響應用程式的其他功能。

Hasura GraphQL引擎提供許多功能,開發者可以用即時API探索資料庫,其提供排序、過濾、分頁以及聚合等開箱即用功能,還在GraphQL中內建稱為訂閱(Subscriptions)的即時查詢功能,讓開發者不需要撰寫任何程式碼,就能處理websocket連接,即時收到查詢結果更新。而Hasura GraphQL引擎也可作為自訂義商業邏輯的閘道器,開發者可以使用自己習慣的開發語言,撰寫GraphQL伺服器,並在單一端點公開。

開發者可以整合GraphQL以及無伺服器服務,Hasura能夠在資料庫插入、更新或是刪除事件發生時,觸發Azure Functions或是webhooks,這個功能可以用於開發非同步商業邏輯上。而Hasura也提供細緻的身份驗證功能,其基於角色的權限管理系統,讓開發者可以在整合第三方應用的同時,控制資料行列的存取等級,也可以進一步結合使用自定義的權限授權服務JWT或webhook。


Advertisement

更多 iThome相關內容