GraphQL 生態系工具介紹

更新於 發佈於 閱讀時間約 6 分鐘
不論是 GraphQL 與 RESTful API 都需要生態系的支撐,才會好用與完整
這篇會先介紹 GraphQL 的生態系工具
raw-image

Prisma

Prisma — Next-generation Node.js and TypeScript ORM for Databases

Prisma 由以下三個元件組成

raw-image

提供自動化且多功能的 resolvers 將 PostgreSQL、MySQL、SQL Server、SQLite、MongoDB 和 CockroachDB 的資料表轉換成 CRUD 的 GraphQL Schema 供使用,並可依據需求方便的與資料庫取得資料並且客製化 resolvers 行為

raw-image

在 Prisma 專案內定義好 schema 後,可以自動產生更改結構的 SQL 語法
方便遷移到正式環境並且保持資料庫結構一至

在 Prisma 專案開發時,可以透過 Prisma Studio 來查詢與修正 Prisma 提供的資料

raw-image

Apollo

Apollo GraphQL | Supergraph: unify APIs, microservices, & databases in a composable graph

Apollo 由以下兩個元件組成

這是一個 GraphQL Engine,可以透過 Apollo Server 連接 DB、RESTful API 或是其他的 GraphQL 來作為服務的整合介面

raw-image

可以提供前端訪問 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 提供服務

raw-image
raw-image
raw-image
raw-image
raw-image

Postman

Postman API Platform | Sign Up for Free

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

raw-image

結論

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

參考

Postman API Platform | Sign Up for Free

Prisma — Next-generation Node.js and TypeScript ORM for Databases

Apollo GraphQL | Supergraph: unify APIs, microservices, & databases in a composable graph

Instant GraphQL APIs on your data | Built-in Authz & Caching (hasura.io)

留言
avatar-img
留言分享你的想法!
avatar-img
Sponge | 一塊海綿的沙龍
6會員
10內容數
分享網站開發的前端、後端、資料庫與部屬維運技術,並記錄在工作上的心得
2023/02/20
Hhost 是一個基於 Hasura 並且整合了 Serverless、PostgreSQL、Auth、Storage 的一體化 BaaS 服務,主要的假想敵為 Firebase 而目標是將網站系統開發盡可能的精簡與可拓展化。
Thumbnail
2023/02/20
Hhost 是一個基於 Hasura 並且整合了 Serverless、PostgreSQL、Auth、Storage 的一體化 BaaS 服務,主要的假想敵為 Firebase 而目標是將網站系統開發盡可能的精簡與可拓展化。
Thumbnail
2023/02/19
PaaS 是指平台即服務(platform as a service),意思是可以透過管理介面執行設定與部署而不需要處理底層的伺服器運作與維護。
Thumbnail
2023/02/19
PaaS 是指平台即服務(platform as a service),意思是可以透過管理介面執行設定與部署而不需要處理底層的伺服器運作與維護。
Thumbnail
2023/02/18
在網頁服務中資料庫擔任了很重要的任務,用來保存客戶的資料與提供分析的數據來源,而針對不同的需求會有各類型適合資料庫來負責。 這篇文章中會針對 Row-Oriented (以列為儲存主體) 和 Columnar (以行為儲存主體) 的兩種資料庫來分析任務與資料庫間的合適搭配。
Thumbnail
2023/02/18
在網頁服務中資料庫擔任了很重要的任務,用來保存客戶的資料與提供分析的數據來源,而針對不同的需求會有各類型適合資料庫來負責。 這篇文章中會針對 Row-Oriented (以列為儲存主體) 和 Columnar (以行為儲存主體) 的兩種資料庫來分析任務與資料庫間的合適搭配。
Thumbnail
看更多
你可能也想看
Thumbnail
※ 什麼是Apollo GraphQL Server? Apollo GraphQL Server 是一個將GraphQL的標準轉化為實際可用的工具和框架,可以在Node.js 常用的中介軟體像是 Express 或 Fastify 所建立的伺服器中,輕鬆加入和設定 Apollo GraphQL
Thumbnail
※ 什麼是Apollo GraphQL Server? Apollo GraphQL Server 是一個將GraphQL的標準轉化為實際可用的工具和框架,可以在Node.js 常用的中介軟體像是 Express 或 Fastify 所建立的伺服器中,輕鬆加入和設定 Apollo GraphQL
Thumbnail
Ruby on Rails 是一個使用 Ruby 語言編寫的開源 Web 應用程式框架。 PostgreSQL 是一個強大、開源的物件關聯式資料庫系統,擁有超過 35 年的活躍開發歷程,並以其可靠性、功能強大性和效能而享有盛譽。 PostgreSQL 提供許多特定資料類型,以下是 Rails 支
Thumbnail
Ruby on Rails 是一個使用 Ruby 語言編寫的開源 Web 應用程式框架。 PostgreSQL 是一個強大、開源的物件關聯式資料庫系統,擁有超過 35 年的活躍開發歷程,並以其可靠性、功能強大性和效能而享有盛譽。 PostgreSQL 提供許多特定資料類型,以下是 Rails 支
Thumbnail
在 Vue 專案中使用 Apollo Graphql Client 從 API 獲取資料,由於資料結構較為複雜,筆者便跟著網路教學使用 codegen 工具自動化產生 TypeScript 型別定義。在某個元件中,需要使用 defineProps 來撰寫型別定義,結果⋯⋯
Thumbnail
在 Vue 專案中使用 Apollo Graphql Client 從 API 獲取資料,由於資料結構較為複雜,筆者便跟著網路教學使用 codegen 工具自動化產生 TypeScript 型別定義。在某個元件中,需要使用 defineProps 來撰寫型別定義,結果⋯⋯
Thumbnail
隨著Web應用的發展,前端和後端的需求也在變得越來越複雜。RESTful APIs已經不再滿足當前的需求,而GraphQL作為一個新興的數據查詢語言,提供了更靈活的查詢能力。在這篇文章中,我們將探討如何在Gin中實現GraphQL API,為你的應用帶來現代化的數據查詢。
Thumbnail
隨著Web應用的發展,前端和後端的需求也在變得越來越複雜。RESTful APIs已經不再滿足當前的需求,而GraphQL作為一個新興的數據查詢語言,提供了更靈活的查詢能力。在這篇文章中,我們將探討如何在Gin中實現GraphQL API,為你的應用帶來現代化的數據查詢。
Thumbnail
其實要為專案建立操作介面的方式很多,除了網頁之外,還能另外寫個專門的手機 APP 連線,或是乾脆升級算法,讓我們能隨口喊一聲「嘿OO!」就搞定,不過⋯
Thumbnail
其實要為專案建立操作介面的方式很多,除了網頁之外,還能另外寫個專門的手機 APP 連線,或是乾脆升級算法,讓我們能隨口喊一聲「嘿OO!」就搞定,不過⋯
Thumbnail
Hasura 是一個開源、高性能、多資料來源與嚴謹權限控管的 GraphQL Engine Service。
Thumbnail
Hasura 是一個開源、高性能、多資料來源與嚴謹權限控管的 GraphQL Engine Service。
Thumbnail
不論是 GraphQL 與 RESTful API 都需要生態系的支撐,才會好用與完整 這篇會先介紹 GraphQL 的生態系工具。
Thumbnail
不論是 GraphQL 與 RESTful API 都需要生態系的支撐,才會好用與完整 這篇會先介紹 GraphQL 的生態系工具。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News