Saltar al contenido principal
Versión: 10.x

Conceptos

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

¿Qué es RPC? ¿Qué mentalidad debo adoptar?

Son solo funciones

RPC es la abreviatura de "Remote Procedure Call" (Llamada a Procedimiento Remoto). Es una forma de invocar funciones en una computadora (servidor) desde otra computadora (cliente). Con las API HTTP/REST tradicionales, llamas a una URL y obtienes una respuesta. Con RPC, llamas a una función y obtienes una respuesta.

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) es una implementación de RPC diseñada para monorepos de TypeScript. Tiene su propio estilo, pero en esencia sigue siendo RPC.

No pienses en los detalles de implementación de HTTP/REST

Si inspeccionas el tráfico de red de una aplicación tRPC, verás que son peticiones y respuestas HTTP bastante estándar, pero no necesitas pensar en estos detalles al escribir tu código. Simplemente llamas funciones, y tRPC maneja todo lo demás. Debes ignorar detalles como los verbos HTTP, que tienen significado en las API REST, pero en RPC forman parte de los nombres de tus funciones, por ejemplo: getUser(id) en lugar de GET /users/:id.

Vocabulario

A continuación presentamos algunos términos frecuentes en el ecosistema tRPC. Los usaremos a lo largo de la documentación, así que conviene familiarizarse con ellos. La mayoría de estos conceptos tienen sus propias páginas en la documentación.

TermDescription
Procedure ↗API endpoint - can be a query, mutation, or subscription.
QueryA procedure that gets some data.
MutationA 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?"