Conceptos
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/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) 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érmino | Descripción |
|---|---|
| Procedure ↗ | Endpoint de API - puede ser un query, mutation o subscription. |
| Query | Un procedure que obtiene datos. |
| Mutation | Un 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?" |