跳至主要內容
版本:11.x

概念

什麼是 RPC?我應該採用什麼心態?

它只是函式

RPC 是「遠端程序呼叫」的縮寫。這是一種從一台電腦(伺服器)呼叫另一台電腦(用戶端)上函式的方法。使用傳統的 HTTP/REST API,您可以呼叫 URL 並取得回應。使用 RPC,您可以呼叫函式並取得回應。

ts
// HTTP/REST
const res = await fetch('/api/users/1');
const user = await res.json();
// RPC
const user = await api.users.getById({ id: 1 });
ts
// HTTP/REST
const res = await fetch('/api/users/1');
const user = await res.json();
// RPC
const user = await api.users.getById({ id: 1 });

tRPC(TypeScript 遠端程序呼叫)是 RPC 的一種實作,專為 TypeScript 單一儲存庫設計。它有自己的特色,但核心是 RPC。

不要考慮 HTTP/REST 實作細節

如果您檢查 tRPC 應用程式的網路流量,您會發現它相當標準的 HTTP 要求和回應,但您在撰寫應用程式程式碼時不需要考慮實作細節。您呼叫函式,而 tRPC 會處理其他所有事情。您應該忽略像 HTTP 動詞這類的細節,因為它們在 REST API 中有意義,但在 RPC 形式中,它們會變成函式名稱的一部分,例如:getUser(id),而不是 GET /users/:id

詞彙

以下是在 tRPC 生態系統中經常使用的術語。我們會在整個文件使用這些術語,因此最好熟悉它們。這些概念中的大多數在文件中也有自己的頁面。

術語說明
程序 ↗API 端點 - 可以是 查詢突變訂閱
查詢取得一些資料的 程序
突變建立、更新或刪除一些資料的 程序
訂閱 ↗建立持續連線並偵聽變更的 程序
路由器 ↗在共用命名空間下的 程序(和/或其他路由器)集合。
內容 ↗每個 程序都可以存取的東西。通常用於會話狀態和資料庫連線等事項。
中間件 ↗可以在 程序前後執行程式碼的函式。可以修改 內容
驗證 ↗「這些輸入資料是否包含正確的內容?」