tRPC en TypeScript: Simplifica el desarrollo de APIs
Construir una API suele significar elegir entre REST o GraphQL. Pasas tiempo configurando rutas, gestionando esquemas y sincronizando tipos entre tu frontend y tu backend. Si usas TypeScript en ambos extremos, este proceso se siente pesado. Terminas escribiendo los mismos tipos dos veces.
tRPC cambia este flujo de trabajo. Elimina la necesidad de un contrato de API separado. En su lugar, utiliza TypeScript para compartir tipos automáticamente entre tu servidor y tu cliente.
¿Por qué usar tRPC?
- Sin sincronización manual de tipos: Escribes una función en el servidor y el cliente conoce los tipos de entrada y salida inmediatamente.
- Sin generación de código: No necesitas ejecutar herramientas adicionales para crear tipos.
- Sin desviación de esquemas: Dado que el cliente utiliza los tipos del servidor directamente, tu frontend se mantiene sincronizado con tu backend.
- Desarrollo más rápido: Se siente como llamar a una función en un archivo local en lugar de realizar una solicitud de red.
Los métodos tradicionales tienen sus desventajas. REST requiere llamadas fetch manuales y tipos duplicados. GraphQL proporciona un esquema, pero añade complejidad con los resolvers y el codegen.
tRPC trata tu backend como una colección de funciones con seguridad de tipos. Defines procedimientos en routers. El cliente importa el tipo de tu router y llama a estos procedimientos directamente.
Flujo de ejemplo:
- Define un procedimiento en el servidor con validación (como Zod).
- Exporta el tipo del router.
- Llama a ese procedimiento en el cliente con autocompletado completo y seguridad de tipos.
Cuándo usar tRPC:
- Tu frontend y tu backend usan TypeScript.
- Controlas ambos lados del stack.
- Estás construyendo herramientas internas, paneles de administración o aplicaciones full-stack con Next.js.
- Trabajas en un monorepo.
Cuándo evitar tRPC:
- Estás construyendo una API pública para muchos usuarios diferentes.
- Tus clientes usan diferentes lenguajes como Python o Go.
- Necesitas un versionado de API complejo.
tRPC no es un reemplazo para REST o GraphQL en todos los escenarios. Es una herramienta para la velocidad y la seguridad cuando tu stack está unificado. Elimina la fricción de los límites de la API y te permite concentrarte en escribir la lógica.
Fuente: https://dev.to/geekyants/trpc-in-typescript-simplify-api-development-without-boilerplate-3lm3