GraphQL 生態系工具介紹

閱讀時間約 5 分鐘
不論是 GraphQL 與 RESTful API 都需要生態系的支撐,才會好用與完整
這篇會先介紹 GraphQL 的生態系工具

Prisma

Prisma 由以下三個元件組成
提供自動化且多功能的 resolvers 將 PostgreSQL、MySQL、SQL Server、SQLite、MongoDB 和 CockroachDB 的資料表轉換成 CRUD 的 GraphQL Schema 供使用,並可依據需求方便的與資料庫取得資料並且客製化 resolvers 行為
在 Prisma 專案內定義好 schema 後,可以自動產生更改結構的 SQL 語法
方便遷移到正式環境並且保持資料庫結構一至
在 Prisma 專案開發時,可以透過 Prisma Studio 來查詢與修正 Prisma 提供的資料

Apollo

Apollo 由以下兩個元件組成
這是一個 GraphQL Engine,可以透過 Apollo Server 連接 DB、RESTful API 或是其他的 GraphQL 來作為服務的整合介面
可以提供前端訪問 GraphQL API 的所有功能,包含但不限 Queries 、Mutation and Subscriptions
官方推出的版本為 React,亦有 Vue 與 Angular 版本的社群移植
function Feed() { const { loading, error, data } = useQuery(GET_DOGS); if (error) return <Error />; if (loading) return <Fetching />; return <DogList dogs={data.dogs} />; }

Hasura

Instant GraphQL APIs on your data | Built-in Authz & Caching (hasura.io)
是一套高性能且具有 GUI 操作的 GraphQL Engine ,可以直接透過 GUI 建立 Table 並針對不同的身分組與條件設定可視化範圍,產生 GraphQL API 或甚至是 RESTful API,就算在 RESTful API 的專案上也能發揮作用
亦可串接第三方 RESTful API、GraphQL API 或是撰寫 Stored procedure 並生成 Mutation 提供服務

Postman

在 RESTful API 生態系也很知名的 API 管理平台,提供了測試與文件共享的功能,讓團隊內成員可以提供在不同場景下使用的 schema,讓前端成員可以有範例知道要如何獲取資料,後端成員也能依據前端紀錄的 schema 來優化後端服務與資料表設計與索引

結論

GraphQL 與 RESTful API 之所以好用,不會是因為他們本身有多嚴謹或彈性
而是有諸多生態系工具讓開發者能選擇與解決各種問題,專注在解決商業邏輯與創造商業價值

參考

為什麼會看到廣告
分享網站開發的前端、後端、資料庫與部屬維運技術,並記錄在工作上的心得
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
這裡會針 GraphQL 與 RESTful API 這兩者介面所需要做的事情來比較其應用的場景。
fast endpoints 是一個支援 .NET 6 以上(Nuget 版本清單) 的 API 輕量框架,雖以簡單與高性能為主打,但也提供了很多常用的功能實現,如 Swagger 整合、Jwt 認證、Api 版本控制、APi 速率限制、Api 回應快取…很適合以此為基礎打造 Api 服務。
MongoDB 在排序時會將資料全部載入記憶體,之後在記憶體中進行排序,而預設開放給排序的記憶體只有 32 MB,因此在大量資料排序時就會引發該錯誤。
這裡會針 GraphQL 與 RESTful API 這兩者介面所需要做的事情來比較其應用的場景。
fast endpoints 是一個支援 .NET 6 以上(Nuget 版本清單) 的 API 輕量框架,雖以簡單與高性能為主打,但也提供了很多常用的功能實現,如 Swagger 整合、Jwt 認證、Api 版本控制、APi 速率限制、Api 回應快取…很適合以此為基礎打造 Api 服務。
MongoDB 在排序時會將資料全部載入記憶體,之後在記憶體中進行排序,而預設開放給排序的記憶體只有 32 MB,因此在大量資料排序時就會引發該錯誤。
你可能也想看
Google News 追蹤
Thumbnail
※ 什麼是Apollo GraphQL Server? Apollo GraphQL Server 是一個將GraphQL的標準轉化為實際可用的工具和框架,可以在Node.js 常用的中介軟體像是 Express 或 Fastify 所建立的伺服器中,輕鬆加入和設定 Apollo GraphQL
※ REST API 和 Apollo GraphQL Server 的區別: 資料獲取方式: REST API:每個資源都有一個固定的 URL,並且通過 HTTP 方法(如 GET、POST、PUT、DELETE)來操作這些資源。伺服器決定返回的資料結構。 GraphQL:使用單一的端點(通
Thumbnail
※ 什麼是Web API API 就是後端開出來讓前端來用的介面,讓前端與後端可以溝通。 API流程: 終端使用者用任何一種裝置進入瀏覽器。 瀏覽器透過 API 向後端發出請求,請求查詢或修改資料。 後端透過 API 收到前端的請求後,取得資料並回應給前端。 前端渲染畫面,終端使用者
Thumbnail
透過GraphQL提供的分頁方式,優化後端讀取資料的效能,避免過度讀取舊資料及準確指定特定項目。同時,利用Local-only field達成資料的整理或再次經過計算,提升管理和重複使用的效能。
Thumbnail
VUE為單向資料流的框架,在鄰近層級之間我們可以依靠 props 由父層向子層來傳遞需要的資料,然而遇到跨層級的架構時,雖然也是可以一層層傳進去,只是這會造成多餘的處理及凌亂的程式碼,因此才有了 "provide" 來解決我們跨層級的需求。 層級展示圖
Thumbnail
Ruby on Rails 是一個使用 Ruby 語言編寫的開源 Web 應用程式框架。 PostgreSQL 是一個強大、開源的物件關聯式資料庫系統,擁有超過 35 年的活躍開發歷程,並以其可靠性、功能強大性和效能而享有盛譽。 PostgreSQL 提供許多特定資料類型,以下是 Rails 支
Thumbnail
在 Vue 專案中使用 Apollo Graphql Client 從 API 獲取資料,由於資料結構較為複雜,筆者便跟著網路教學使用 codegen 工具自動化產生 TypeScript 型別定義。在某個元件中,需要使用 defineProps 來撰寫型別定義,結果⋯⋯
※ 什麼是 RESTful API? 這種運用 HTTP 來表達語義的路由設計風格稱為 RESTful API,它描述了如何實現 Web API 的架構。所謂的 API 是應用程式介面 (application programming interface),網址也是一種應用程式的「介面」,故稱為
Thumbnail
這篇文章主要介紹了什麼是鏈上數據,和鏈上數據分析的用途。並介紹了三家鏈上數據分析平臺:DefiLlama, Glassnode和Nansen。這些平臺提供了關於區塊鏈和加密貨幣市場的精確且可靠的數據。文章列舉了這些平臺的功能和特色,以及他們的定價方案。
Thumbnail
關於FastAPI這個框架為什麼有什麼樣的優勢, 為什麼會這麼熱門? 歡迎參考「【Python 技術選型】如何選出適合的API框架呢?」。 站在巨人的肩膀上 FastAPI主要基於以下兩個重要的元件組成, Starlette與Pydantic, 就讓我們來看看兩者的關係吧! 安裝 pip
Thumbnail
※ 什麼是Apollo GraphQL Server? Apollo GraphQL Server 是一個將GraphQL的標準轉化為實際可用的工具和框架,可以在Node.js 常用的中介軟體像是 Express 或 Fastify 所建立的伺服器中,輕鬆加入和設定 Apollo GraphQL
※ REST API 和 Apollo GraphQL Server 的區別: 資料獲取方式: REST API:每個資源都有一個固定的 URL,並且通過 HTTP 方法(如 GET、POST、PUT、DELETE)來操作這些資源。伺服器決定返回的資料結構。 GraphQL:使用單一的端點(通
Thumbnail
※ 什麼是Web API API 就是後端開出來讓前端來用的介面,讓前端與後端可以溝通。 API流程: 終端使用者用任何一種裝置進入瀏覽器。 瀏覽器透過 API 向後端發出請求,請求查詢或修改資料。 後端透過 API 收到前端的請求後,取得資料並回應給前端。 前端渲染畫面,終端使用者
Thumbnail
透過GraphQL提供的分頁方式,優化後端讀取資料的效能,避免過度讀取舊資料及準確指定特定項目。同時,利用Local-only field達成資料的整理或再次經過計算,提升管理和重複使用的效能。
Thumbnail
VUE為單向資料流的框架,在鄰近層級之間我們可以依靠 props 由父層向子層來傳遞需要的資料,然而遇到跨層級的架構時,雖然也是可以一層層傳進去,只是這會造成多餘的處理及凌亂的程式碼,因此才有了 "provide" 來解決我們跨層級的需求。 層級展示圖
Thumbnail
Ruby on Rails 是一個使用 Ruby 語言編寫的開源 Web 應用程式框架。 PostgreSQL 是一個強大、開源的物件關聯式資料庫系統,擁有超過 35 年的活躍開發歷程,並以其可靠性、功能強大性和效能而享有盛譽。 PostgreSQL 提供許多特定資料類型,以下是 Rails 支
Thumbnail
在 Vue 專案中使用 Apollo Graphql Client 從 API 獲取資料,由於資料結構較為複雜,筆者便跟著網路教學使用 codegen 工具自動化產生 TypeScript 型別定義。在某個元件中,需要使用 defineProps 來撰寫型別定義,結果⋯⋯
※ 什麼是 RESTful API? 這種運用 HTTP 來表達語義的路由設計風格稱為 RESTful API,它描述了如何實現 Web API 的架構。所謂的 API 是應用程式介面 (application programming interface),網址也是一種應用程式的「介面」,故稱為
Thumbnail
這篇文章主要介紹了什麼是鏈上數據,和鏈上數據分析的用途。並介紹了三家鏈上數據分析平臺:DefiLlama, Glassnode和Nansen。這些平臺提供了關於區塊鏈和加密貨幣市場的精確且可靠的數據。文章列舉了這些平臺的功能和特色,以及他們的定價方案。
Thumbnail
關於FastAPI這個框架為什麼有什麼樣的優勢, 為什麼會這麼熱門? 歡迎參考「【Python 技術選型】如何選出適合的API框架呢?」。 站在巨人的肩膀上 FastAPI主要基於以下兩個重要的元件組成, Starlette與Pydantic, 就讓我們來看看兩者的關係吧! 安裝 pip