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
查看全部
發表第一個留言支持創作者!
這裡會針 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
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
透過GraphQL提供的分頁方式,優化後端讀取資料的效能,避免過度讀取舊資料及準確指定特定項目。同時,利用Local-only field達成資料的整理或再次經過計算,提升管理和重複使用的效能。
Thumbnail
你曾經是草食動物 一木一草即為你的天地 你曾經是肉食動物 狩獵動物即為你的天性 最終生態系裡 分解者 分食一切 消失殆盡 你曾經回到過去 為了安撫未完成的情緒出口 你曾經想像未來 為了追求未知帶來的冒險精神 現在你停留在此時 只為片刻的快樂 因為最終 你不是你 我不是我
Thumbnail
🚀 在Gin中整合GraphQL和MongoDB:靈活的數據查詢 隨著Web應用的複雜度增加,開發者尋找更靈活和高效的方式來查詢和操作數據。GraphQL作為一種查詢語言,允許用戶精確地指定他們想要的數據,而MongoDB作為一個靈活的NoSQL數據庫,可以很好地支持這種查詢。結合這兩者,我
Thumbnail
實時數據更新在今天的應用程序中變得越來越重要。GraphQL訂閱提供了一種高效的方式來實現這一目標。 在這篇文章裡,我們將探討如何在Gin框架與GraphQL結合下,實現數據的實時更新,或者說,實現所謂的“訂閱”功能。
Thumbnail
隨著Web應用的發展,前端和後端的需求也在變得越來越複雜。RESTful APIs已經不再滿足當前的需求,而GraphQL作為一個新興的數據查詢語言,提供了更靈活的查詢能力。在這篇文章中,我們將探討如何在Gin中實現GraphQL API,為你的應用帶來現代化的數據查詢。
Thumbnail
「這時代呈現的是不同情境與時空堆疊的世界」 當你想要前往一個目的,你所關注的不是目的,而是過程。 比如你想要從高雄到台北,台北是你的終點,你要想著到台北之前你做了什麼步驟? 從高鐵站下來,或是從台北車站下來? 若你選擇從高鐵站下來,你就要去思考你從高鐵站下來之前你做了什麼? 可能是計程車司機在你到高
Thumbnail
每個人對於好有不同定義,但我今天這篇就先以「錢」為主軸來寫吧,你了解後也可以自由延伸到自己其他定義的好生活上。 越活越不好的人,最大的特性就是「捨不得」。 捨不得自己的錢多給,所以變成什麼錢都要省。 捨不得自己的知識被別人拿去用,所以變成什麼人都不教。 捨不得自己多花時間在工作上,於是專業領
Thumbnail
這禮拜一就寫了,只是寫到一半沒有結論作罷,後來想想還是先記錄下來吧。 多數人聽過的生態系統,也就是獵人在打獵時會放過幼年時期的獵物,瞄準已成年的獵物,為的就是在未來能夠有足夠獵物可以獵捕,避免糧食斷絕。 首先,你要成為鯨魚還是灰狼? 這並不是真的問你喜歡哪個動物,而是,你想成為什麼人? 結論
報告的季節又隨手查了一下,原來有好多老師有做教學紀錄分享呢。 也在這裡整理一下。 因著這個觀察,已經和資訊科老師商量是否可以建置一個網頁供大家分享相同主題的教學經驗,請拭目以待。
Thumbnail
學期初就預告了這個活動,主題除了最基本的生態系外,也因為一連串的環境事件和議題而深深覺得關懷土地是要從根做起,參考了環境資訊協會2011十大環境新聞中的議題當作題目,除了讓學生了解台灣正在發生的議題外,也希望學生能藉由這次活動種下培養關心社會以及實踐保育小苗。
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
透過GraphQL提供的分頁方式,優化後端讀取資料的效能,避免過度讀取舊資料及準確指定特定項目。同時,利用Local-only field達成資料的整理或再次經過計算,提升管理和重複使用的效能。
Thumbnail
你曾經是草食動物 一木一草即為你的天地 你曾經是肉食動物 狩獵動物即為你的天性 最終生態系裡 分解者 分食一切 消失殆盡 你曾經回到過去 為了安撫未完成的情緒出口 你曾經想像未來 為了追求未知帶來的冒險精神 現在你停留在此時 只為片刻的快樂 因為最終 你不是你 我不是我
Thumbnail
🚀 在Gin中整合GraphQL和MongoDB:靈活的數據查詢 隨著Web應用的複雜度增加,開發者尋找更靈活和高效的方式來查詢和操作數據。GraphQL作為一種查詢語言,允許用戶精確地指定他們想要的數據,而MongoDB作為一個靈活的NoSQL數據庫,可以很好地支持這種查詢。結合這兩者,我
Thumbnail
實時數據更新在今天的應用程序中變得越來越重要。GraphQL訂閱提供了一種高效的方式來實現這一目標。 在這篇文章裡,我們將探討如何在Gin框架與GraphQL結合下,實現數據的實時更新,或者說,實現所謂的“訂閱”功能。
Thumbnail
隨著Web應用的發展,前端和後端的需求也在變得越來越複雜。RESTful APIs已經不再滿足當前的需求,而GraphQL作為一個新興的數據查詢語言,提供了更靈活的查詢能力。在這篇文章中,我們將探討如何在Gin中實現GraphQL API,為你的應用帶來現代化的數據查詢。
Thumbnail
「這時代呈現的是不同情境與時空堆疊的世界」 當你想要前往一個目的,你所關注的不是目的,而是過程。 比如你想要從高雄到台北,台北是你的終點,你要想著到台北之前你做了什麼步驟? 從高鐵站下來,或是從台北車站下來? 若你選擇從高鐵站下來,你就要去思考你從高鐵站下來之前你做了什麼? 可能是計程車司機在你到高
Thumbnail
每個人對於好有不同定義,但我今天這篇就先以「錢」為主軸來寫吧,你了解後也可以自由延伸到自己其他定義的好生活上。 越活越不好的人,最大的特性就是「捨不得」。 捨不得自己的錢多給,所以變成什麼錢都要省。 捨不得自己的知識被別人拿去用,所以變成什麼人都不教。 捨不得自己多花時間在工作上,於是專業領
Thumbnail
這禮拜一就寫了,只是寫到一半沒有結論作罷,後來想想還是先記錄下來吧。 多數人聽過的生態系統,也就是獵人在打獵時會放過幼年時期的獵物,瞄準已成年的獵物,為的就是在未來能夠有足夠獵物可以獵捕,避免糧食斷絕。 首先,你要成為鯨魚還是灰狼? 這並不是真的問你喜歡哪個動物,而是,你想成為什麼人? 結論
報告的季節又隨手查了一下,原來有好多老師有做教學紀錄分享呢。 也在這裡整理一下。 因著這個觀察,已經和資訊科老師商量是否可以建置一個網頁供大家分享相同主題的教學經驗,請拭目以待。
Thumbnail
學期初就預告了這個活動,主題除了最基本的生態系外,也因為一連串的環境事件和議題而深深覺得關懷土地是要從根做起,參考了環境資訊協會2011十大環境新聞中的議題當作題目,除了讓學生了解台灣正在發生的議題外,也希望學生能藉由這次活動種下培養關心社會以及實踐保育小苗。