Hoppa till huvudinnehållet
Version: 10.x

Begrepp

Inofficiell Beta-översättning

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/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 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.

TermBeskrivning
Procedure ↗API-slutpunkt - kan vara en query, mutation eller subscription.
QueryEn procedure som hämtar data.
MutationEn 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?"