跳至主要内容

11 篇文件帶有標籤「GraphQL」

檢視所有標籤

Apollo Federation

Federation (聯盟) 讓 GraphQL 可以只開放出一個讓 client 對接的接口,client 不需知道裡面是否為 monolith 或是 microservices,Apollo Federation 在微服務建立各個 subgraph 間的關係,讓 subgraph a 的某個欄位可以連接至 subgraph b 的某個 entity 等。

Intro

GraphQL 為 Facebook 開發的 API 查詢語言,達到更彈性地查詢資料,減少多餘的數據需求及數據傳輸,相較於傳統的 RESTful API 針對不同行為提供多端點,GraphQL 可以只提供單一端點並根據帶進端點的 GET query params / POST body 內定義的不同查詢行為及查詢內容提供彈性地回應。

NestJS + Apollo Federation

我們來將之前做的 NestJS 應用拆成是兩個微服務: User service, Comment Service,分別管理用戶以及評論,這兩個服務即為 microservices。

Query & Mutation

CRUD 是 API 常見的行為,CRUD 代表 Create (建立), Read (讀取), Update (更新), Delete (刪除),說到 CRUD,我們應該都習慣 RESTful API 的 CRUD,以及對應的 http method:

React 導入 GraphQL

在前端與 GraphQL 溝通的方式有幾種,在這篇文章會一一介紹。而前端的框架會使用 React + TypeScript,首先我們先透過 vite 去起一個 React 專案:

Subscription

相信大家一定很習慣使用 Websocket 去做 pub/sub pattern,讓 client 可以在第一時間知道 server 端通知的任何變動,包含資料創建、更改等,讓 client 的 UX 可以有大幅的提升。