Saltar al contenido principal
Versión: 11.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 solicitudes y respuestas HTTP bastante estándar, pero no necesitas pensar en los detalles de implementación al escribir tu código de aplicación. Tú llamas funciones y tRPC se encarga de todo lo demás. Debes ignorar detalles como los HTTP Verbs, ya que en las REST APIs tienen significado, 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.

TérminoDescripción
Procedure ↗Endpoint de API - puede ser un query, mutation o subscription.
QueryUn procedure que obtiene datos.
MutationUn procedure que crea, actualiza o elimina datos.
Subscription ↗Un procedure que crea una conexión persistente y escucha cambios.
Router ↗Colección de procedures (y/o otros routers) bajo un espacio de nombres compartido.
Context ↗Elementos que cada procedure puede acceder. Usualmente usado para estado de sesión y conexiones a bases de datos.
Middleware ↗Función que ejecuta código antes y después de un procedure. Puede modificar el context.
Validation ↗"¿Contiene esta entrada los datos correctos?"