Begrepp
Denna sida har översatts av PageTurner AI (beta). Inte officiellt godkänd av projektet. Hittade du ett fel? Rapportera problem →
Vad är RPC? Vilket förhållningssätt ska jag ha?
Det är bara funktioner
RPC står för "Remote Procedure Call" (fjärrproceduranrop). Det är ett sätt att anropa funktioner på en dator (servern) från en annan dator (klienten). Med traditionella HTTP/REST-API:er anropar du en URL och får ett svar. Med RPC anropar du en funktion och får ett svar.
ts// HTTP/RESTconst res = await fetch('/api/users/1');const user = await res.json();// RPCconst user = await api.users.getById({ id: 1 });
ts// HTTP/RESTconst res = await fetch('/api/users/1');const user = await res.json();// RPCconst user = await api.users.getById({ id: 1 });
tRPC (TypeScript Remote Procedure Call) är en implementation av RPC, designad för TypeScript-monorepos. Den har sin egen karaktär, men är i grunden RPC.
Tänk inte på HTTP/REST-implementeringsdetaljer
Om du inspekterar nätverkstrafiken i en tRPC-app ser du att det är ganska standardiserade HTTP-förfrågningar och svar, men du behöver inte tänka på implementeringsdetaljerna när du skriver din applikationskod. Du anropar funktioner och tRPC sköter resten. Du bör ignorera detaljer som HTTP-verb eftersom de bär mening i REST-API:er, medan de i RPC istället blir del av dina funktionsnamn, till exempel: getUser(id) istället för GET /users/:id.
Ordlista
Här nedanför följer termer som ofta används i tRPC-ekosystemet. Vi kommer att använda dessa genomgående i dokumentationen, så det är bra att bekanta sig med dem. De flesta av dessa begrepp har även egna sidor i dokumentationen.
| Term | Description |
|---|---|
| Procedure ↗ | API endpoint - can be a query, mutation, or subscription. |
| Query | A procedure that gets some data. |
| Mutation | A procedure that creates, updates, or deletes some data. |
| Subscription ↗ | A procedure that creates a persistent connection and listens to changes. |
| Router ↗ | A collection of procedures (and/or other routers) under a shared namespace. |
| Context ↗ | Stuff that every procedure can access. Commonly used for things like session state and database connections. |
| Middleware ↗ | A function that can run code before and after a procedure. Can modify context. |
| Validation ↗ | "Does this input data contain the right stuff?" |