不論是 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
亦可串接第三方 RESTful API、GraphQL API 或是撰寫 Stored procedure 並生成 Mutation 提供服務
Postman
在 RESTful API 生態系也很知名的 API 管理平台,提供了測試與文件共享的功能,讓團隊內成員可以提供在不同場景下使用的 schema,讓前端成員可以有範例知道要如何獲取資料,後端成員也能依據前端紀錄的 schema 來優化後端服務與資料表設計與索引
結論
GraphQL 與 RESTful API 之所以好用,不會是因為他們本身有多嚴謹或彈性
而是有諸多生態系工具讓開發者能選擇與解決各種問題,專注在解決商業邏輯與創造商業價值
參考