Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

GraphQL 從 0 到 1 系列

共 21 篇文章

1

GraphQL 是什麼?為什麼它比 REST 更靈活?

隨著前端技術的快速發展,資料需求的複雜度也越來越高。 傳統的 REST API 雖然穩定可靠,但在某些情境下卻顯得不夠靈活、容易過載,甚至帶來開發效率低下的問題。 因此,一種新的資料溝通方式——GraphQL,迅速崛起,成為現代前後端溝通的新寵。 本篇文章將用最白話的方式帶你了解: GraphQL...

2025年4月28日
Web API
2

GraphQL 如何根據 Query 動態生成 SQL?

在現代應用中,GraphQL 的一大亮點就是其動態生成 SQL 的能力,這與傳統 REST API 的固定路由和手寫 SQL 有著本質上的不同。 比較項目REST APIGraphQLSQL 產生方式開發時手寫 SQL,寫死根據前端送來的 Query,動態產生 SQL查詢自由度受限於後端預設的欄位和...

2025年4月27日
Web API
3

初學者入門:認識 GraphQL Schema

如果你正在學習 GraphQL, 一定會很快遇到一個超級重要的關鍵字:Schema(綱要、結構)。 Schema 是 GraphQL 的骨架。 它定義了: 後端有哪些資料可以提供? 這些資料是什麼型別? 前端可以發送哪些查詢、變更請求? 每個操作需要帶哪些參數、會回傳什麼? 簡單來說,沒有 Sche...

2025年3月18日
資料庫
4

從 Resolver 開始,理解 GraphQL Type 與資料庫的關係

初學者常會好奇: 「我寫了一個 GraphQL Type,為什麼前端就能查資料?」 「GraphQL 怎麼知道資料在哪張表?」 這些疑問其實很有道理,因為你看到的 Type 和真正的資料來源(資料庫)之間,並沒有自動連線的魔法,中間其實藏著一個重要的角色:Resolver。 這篇文章就會從這個核心問...

2025年5月1日
Web API
5

為什麼 GraphQL 不查資料?它不是缺陷,而是超前的設計

當你開始學 GraphQL,常會有這樣的疑問: 「我不是已經定義好 type 和 query 嗎?為什麼 GraphQL 本身不會查資料,還需要另外寫 Resolver?」 「Resolver 為什麼不像語法的一部分?為什麼一定要靠 Apollo、Hasura、gqlgen 這些外部工具來實作?」...

2025年5月2日
Web API
6

為什麼 GraphQL Resolver 是以欄位為單位觸發?從根本理解查詢邏輯

GraphQL 是一種查詢語言(Query Language),它讓前端可以精確地定義需要的資料欄位,只拿想要的資料、不多不少。 然而,如果你是從 REST API 或資料庫查詢背景轉過來的新手,會對一件事感到困惑: 為什麼明明只送出一次 GraphQL 查詢,卻會執行那麼多 Resolver 函式...

2025年5月6日
Web API
7

探索 .graphql 檔案:前端與後端如何分工協作?

當你第一次接觸 GraphQL,可能會感到困惑: 「我在專案中看到很多 .graphql 檔案,有些在後端、有些在前端,到底誰該寫什麼?這些檔案是在做什麼用?」 事實上,.graphql 是一種純文字格式的檔案,用來撰寫 GraphQL 的語法內容,但前後端使用 .graphql 的目的與內容是完全...

2025年5月8日
Web API
8

GraphQL 伺服器架構指南:初學者入門

當你剛接觸 GraphQL 時,可能會被它的查詢語法所吸引: 你可以一次查多個欄位、不必再開多個 API、甚至還能只取用你要的資料欄位,看起來非常高效又簡潔。 再進一步學習後,你可能已經理解了幾個核心名詞: Schema 定義查詢能要什麼資料、Resolver 負責回傳資料、Query 是前端送出的...

2025年3月19日
架構
9

GraphQL 初學者必讀:自動產生 Resolver 的工具與底層邏輯解析

當你開始學 GraphQL 時,可能會有這樣的疑問: 「為什麼我都已經定義好 Type,還要再手寫 Resolver?」 「能不能像 REST 一樣,一個 endpoint 就包好資料邏輯?」 其實,這並不是 GraphQL 的缺陷,而是一種有意設計: ✅ GraphQL 採取「資料格式」與「資料來...

2025年5月5日
Web API
10

初學者入門指南:什麼是 Hasura?為什麼開發者越來越愛用它?

近年來,GraphQL 成為許多開發者的資料存取首選。 它允許前端開發者自行決定需要的欄位,並透過一個請求同時取得多個資料來源,甚至支援即時更新,這些特性都比傳統 REST API 靈活許多。 但值得注意的是: ⚠️ GraphQL 並不是一個實作好的服務或框架,它只是一種「查詢語言規範」。 真正能...

2025年3月18日
Web API
11

GraphQL Codegen 是什麼?從零開始了解自動化產生 TypeScript 型別的神器

在開發使用 GraphQL 的前後端系統時,常見挑戰之一就是「維護型別一致性」。 當你在後端定義了一份 GraphQL schema,前端開發者也需要手動撰寫對應的型別定義,這不僅麻煩,還容易出錯。 更別提當 API 改動時,前端型別沒有同步更新的情況,可能會導致整個應用在執行階段發生錯誤。 這時候...

2025年5月10日
Web API
12

Apollo GraphQL 是什麼?

Apollo 是一個專門為 GraphQL 打造的開源工具生態系(ecosystem)。 它不只是單一個小工具,而是一整套「從前端到後端」完整支援 GraphQL 的技術組合。 Apollo 的出現,就是為了解決開發者在使用 GraphQL 時,常常遇到的一些繁瑣問題, 像是: 如何簡單又有效率地發...

2025年4月28日
Web API
13

GraphQL 前端請求完整指南:HTTP 傳輸原理與變數(Variables)用法解析

GraphQL 作為現代 API 設計的代表,不再像傳統 REST API 一樣,每個資源對應一條 endpoint,而是透過一個統一的入口,讓前端自行描述需要的資料結構。 這種靈活性大幅提升了開發效率,但也讓不少初學者在剛上手時產生疑問: 「GraphQL 到底是怎麼送出請求的?」 「為什麼只有一...

2025年5月11日
Web API
14

Apollo Client 入門指南:現代 React App 的 GraphQL 最佳搭檔

GraphQL 雖然帶來了靈活的資料查詢方式,但在實務開發中,前端開發者仍然會遇到不少難題。 例如: 如何方便地送出查詢與變更? 如何有效管理 loading、error 與資料狀態? 如何避免重複請求,實作快取與 UI 同步? 如何讓本地資料與伺服器資料保持一致? 這些挑戰需要一套穩定且一致的資料...

2025年5月12日
Web API
15

用 useQuery 拿資料:GraphQL 查詢入門指南

當你開始在 React 中使用 Apollo Client 整合 GraphQL,最常遇到的第一個需求就是「從後端拿資料」。 這時候,Apollo 提供的 useQuery hook 就是你最好的工具。 這篇文章會一步一步帶你了解: GraphQL 查詢(Query)的基本寫法 useQuery 的...

2025年5月14日
Web API
16

前端如何查看 GraphQL Schema?完整指南

在開發使用 GraphQL 的應用時,了解後端的 Schema 結構是非常重要的第一步。 GraphQL Schema 定義了有哪些資料可以查詢(Query)、可以修改(Mutation),以及這些資料的資料型別與欄位結構。 如果你不知道有哪些 API 可以用,或者不知道參數與回傳格式長怎樣,就很難...

2025年5月18日
Web API
17

GraphQL 命名層級差異全解析:Operation Name VS Schema Function Name

在使用 GraphQL 查詢資料時,我們經常會看到查詢語法中出現多個名稱,像是: query GetUser($id: ID!) { user(id: $id) { id name email } } 這些名稱有些是前端自己取的,有些則是後端 Schema 定義的。如...

2025年5月21日
Web API
18

GraphQL 變數用法完整指南:從入門到實作

在學習 GraphQL 的初期,我們常常會直接把參數值寫在查詢語法中,例如: query { getUser(id: “123”) { name email } } 這樣雖然可以正確執行,但隨著專案變大,這種寫法會出現以下問題: ❌ 查詢語法與參數綁死...

2025年5月21日
Web API
19

用 useMutation 寫入資料:新增 / 更新都搞定

GraphQL 不只有查詢資料(Query),也可以新增、更新、刪除資料(Mutation)。 在前端使用 Apollo Client 時,useMutation 就是我們操作伺服器資料的主力工具。 舉例來說,你可能會需要: 新增一筆留言或使用者 更新某個表單送出的資料 按下按鈕刪除某個項目 這些動...

2025年5月22日
Web API
20

初學者指南:完整解析 useMutation 的參數與用法

GraphQL 是現代前端開發中非常熱門的 API 技術,而在 React 應用中,Apollo Client 是最常使用的 GraphQL 工具。 當你需要「新增 / 更新 / 刪除」資料時,useMutation 是我們的主要利器。 但除了發送請求之外,useMutation 其實還能透過「第二...

2025年6月3日
Web API
21

GraphQL 從請求到回應的完整流程:前端、後端、資料庫誰負責什麼?

當你在學 GraphQL 時,可能會有這樣的疑問: 如果你是初學者,對這些過程的印象可能只有一句話:「前端送 [...]

2025年7月22日
Web API