tRPC em TypeScript: Simplificando o Desenvolvimento de APIs
Construir uma API geralmente significa escolher entre REST ou GraphQL. Você gasta tempo configurando rotas, gerenciando esquemas e sincronizando tipos entre seu frontend e backend. Se você usa TypeScript em ambos os lados, esse processo parece pesado. Você acaba escrevendo os mesmos tipos duas vezes.
O tRPC muda esse fluxo de trabalho. Ele elimina a necessidade de um contrato de API separado. Em vez disso, utiliza o TypeScript para compartilhar tipos automaticamente entre seu servidor e cliente.
Por que usar tRPC?
- Sem sincronização manual de tipos: Você escreve uma função no servidor e o cliente conhece os tipos de entrada e saída imediatamente.
- Sem geração de código: Você não precisa executar ferramentas extras para criar tipos.
- Sem desvio de esquema (schema drift): Como o cliente usa os tipos do servidor diretamente, seu frontend permanece sincronizado com seu backend.
- Desenvolvimento mais rápido: Parece que você está chamando uma função em um arquivo local, em vez de fazer uma requisição de rede.
Métodos tradicionais possuem trade-offs. O REST exige chamadas de fetch manuais e tipos duplicados. O GraphQL fornece um esquema, mas adiciona complexidade com resolvers e codegen.
O tRPC trata seu backend como uma coleção de funções com segurança de tipos (type-safe). Você define procedimentos em roteadores (routers). O cliente importa o tipo do seu roteador e chama esses procedimentos diretamente.
Fluxo de exemplo:
- Defina um procedimento no servidor com validação (como o Zod).
- Exporte o tipo do roteador.
- Chame esse procedimento no cliente com preenchimento automático e segurança de tipos completos.
Quando usar tRPC:
- Seu frontend e backend utilizam TypeScript.
- Você controla ambos os lados da stack.
- Você está construindo ferramentas internas, dashboards de administração ou aplicativos full-stack com Next.js.
- Você trabalha em um monorepo.
Quando evitar o tRPC:
- Você está construindo uma API pública para muitos usuários diferentes.
- Seus clientes usam linguagens diferentes, como Python ou Go.
- Você precisa de versionamento de API complexo.
O tRPC não é um substituto para REST ou GraphQL em todos os cenários. É uma ferramenta para velocidade e segurança quando sua stack é unificada. Ele remove a fricção das fronteiras de API e permite que você foque em escrever a lógica.
Fonte: https://dev.to/geekyants/trpc-in-typescript-simplify-api-development-without-boilerplate-3lm3