Slide 1

Slide 1 text

tRPC: tipando seus endpoints sem GraphQL

Slide 2

Slide 2 text

Olá! Eu sou o Baú 👋 Caiçara, Pintor de botões e jogador amador de Magic: The Gathering 🃏 Você pode me encontrar em @mechamobau 2

Slide 3

Slide 3 text

1. Motivação Porque é tão interessante o conceito

Slide 4

Slide 4 text

Compartilhando tipos entre projetos ▪ Replicação manual ▪ Publicação de tipos ▪ GraphQL A exportação entre os métodos depende de uma configuração manual. 4

Slide 5

Slide 5 text

Algumas desvantagens 1. Repetição de código 2. Configuração inicial no processo de build 3. Geração de um schema universal 5

Slide 6

Slide 6 text

2. Diferentes abordagens Maneiras diferentes de atacar o mesmo problema

Slide 7

Slide 7 text

REST 7

Slide 8

Slide 8 text

GraphQL 8

Slide 9

Slide 9 text

RPC 9

Slide 10

Slide 10 text

3. O que é tRPC? Apresentando os conceitos da biblioteca

Slide 11

Slide 11 text

11 tRPC possibilita construir e consumir APIs fortemente tipadas facilmente, sem schemas ou geração de código.

Slide 12

Slide 12 text

O que é tRPC? 12

Slide 13

Slide 13 text

Para quem o tRPC é destinado? O tRPC pode ser interessante para os seguintes casos de uso: ▪ Devs Full-stacks JavaScript ▪ Monorepos JS/TS ▪ Projetos multi-linguagens 13

Slide 14

Slide 14 text

Criando nossas primeiras rotas 14

Slide 15

Slide 15 text

Criando nossas primeiras rotas 15

Slide 16

Slide 16 text

Com isto, vemos que: Padrões tRPC As definições criadas com tRPC seguem a mesma definição do GraphQL, possibilitando query, mutation e subscription. Endpoints Endpoints são divididos por funções com suas próprias responsabilidades. Tipos inferidos Não precisamos declarar tipos para os endpoints, sendo eles inferidos. 16

Slide 17

Slide 17 text

Consumindo isso em nosso código 17 Para consumir nosso serviço temos algumas opções: ▪ @trpc/client ▪ @trpc/react ▪ @trpc/next

Slide 18

Slide 18 text

Consumindo isso em nosso código 18

Slide 19

Slide 19 text

Consumindo isso em nosso código 19

Slide 20

Slide 20 text

~30kb Tamanho dos pacotes de cliente e servidor 0.0 Sem dependências externas ~7.000 Estrelas no Github 20

Slide 21

Slide 21 text

Até mais! Alguma dúvida? Você pode me encontrar em: ▪ @mechamobau ▪ [email protected] 21

Slide 22

Slide 22 text

Créditos Agradecimento especial ao pessoal que lançou e disponibilizou estes fantásticos conteúdos gratuitamente: ▪ Template da apresentação SlidesCarnival ▪ Fotos por Unsplash and The Gender Spectrum Collection 22