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 granskar nätverkstrafiken i en tRPC-app ser du att det är ganska standardmässiga 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 betydelse i REST API:er men i RPC istället utgör en 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 | Beskrivning |
|---|---|
| Procedure ↗ | API-slutpunkt - kan vara en query, mutation eller subscription. |
| Query | En procedure som hämtar data. |
| Mutation | En procedure som skapar, uppdaterar eller raderar data. |
| Subscription ↗ | En procedure som skapar en beständig anslutning och lyssnar på ändringar. |
| Router ↗ | En samling av procedures (och/eller andra routers) under ett delat namnutrymme. |
| Context ↗ | Saker som varje procedure kan komma åt. Används vanligen för saker som sessionsstatus och databasanslutningar. |
| Middleware ↗ | En funktion som kan köra kod före och efter en procedure. Kan modifiera context. |
| Validation ↗ | "Innehåller dessa indata rätt saker?" |