🚀 Oferta especial: 60% OFF no CrazyStack - Últimas vagas!Garantir vaga →
Módulo 1 - Aula 3

tRPC Router: Organização e Estrutura Escalável

Organize seus routers tRPC de forma escalável. Aprenda aninhamento, separação de responsabilidades e melhores práticas para projetos grandes.

40 min
Intermediário
Organização

🎯 Por que organização é essencial em projetos tRPC?

Escalabilidade: Routers bem organizados facilitam manutenção e evolução do projeto.

Colaboração: Estrutura clara permite que equipes trabalhem em paralelo sem conflitos.

🏗️ Arquitetura Modular de Routers tRPC

routers-organization.ts
// 📁 server/trpc/routers/_app.ts
import { router } from '../trpc';
import { userRouter } from './user';
import { postRouter } from './post';
import { commentRouter } from './comment';

// 🎯 Router principal com sub-routers
export const appRouter = router({
  user: userRouter,
  post: postRouter,
  comment: commentRouter,
});

export type AppRouter = typeof appRouter;

// 📁 server/trpc/routers/user.ts
export const userRouter = router({
  // 🔍 Queries
  getProfile: protectedProcedure
    .input(z.string())
    .query(({ input, ctx }) => {
      return ctx.db.user.findUnique({
        where: { id: input }
      });
    }),

  // 📝 Mutations
  updateProfile: protectedProcedure
    .input(updateUserSchema)
    .mutation(({ input, ctx }) => {
      return ctx.db.user.update({
        where: { id: ctx.user.id },
        data: input
      });
    }),
});

🚀 Veja em Ação!

Confira o exemplo interativo desta aula rodando em tempo real:

live-mode-link.txt
Acesse: /curso-trpc/modulo-1/aula-3/live-mode