No video

Criando validações com Zod em uma requisição HTTP

Existem informações que são obrigatórias dentro de um projeto, quando essas informações são fornecidas pelos usuários, é importante que a gente faça um processo chamado de validação, que confirma que o banco de dados vai receber o que ele precisa.
Aqui eu vou te mostrar como eu fiz o processo de validação dentro de uma requisião HTTP usando o Zod, uma biblioteca específica para validações.
Pra ver como eu fiz isso na prática é só assistir o vídeo!
-----
Conecte-se a 500mil devs e avance para o próximo nível com a nossa plataforma: rocketseat.com.br/
Cadastre-se na nossa plataforma: app.rocketseat.com.br/signup
Junte-se a mais de 392mil devs em nossa comunidade no Discord: / discord
Acompanhe a Rocketseat nas redes sociais:
Twitter: @rocketseat
Facebook: @rocketseat
Instagram: @rocketseat

Пікірлер: 53

  • @imartytk
    @imartytk2 ай бұрын

    Saudade de qd a rocket botava video de 1h ensinando algo foda como por ex envio de email com amazon ses, upload de foto, kafka, recriando interface do uber.. agr é só corte rapido e rasteiro

  • @avloggerfinger9050

    @avloggerfinger9050

    2 ай бұрын

    Suspeito que eles estejam preparando algum coisa para nós, esses últimos vídeos postados são do NLW Unite, acho que foi a NLW mais recente que teve aí.

  • @danielmonaro4835

    @danielmonaro4835

    2 ай бұрын

    gosto muito do conteúdo deles, mas ultimamente só tão pegando corte de live e tacando no ytb :(

  • @avloggerfinger9050

    @avloggerfinger9050

    2 ай бұрын

    @@danielmonaro4835 Verdade. Mas assim, eu gosto mesmo assim porque ainda é um conteúdo interessante, porém gostaria mais que fosse como antigamente haha.

  • @MarcusTorres-zv5cv

    @MarcusTorres-zv5cv

    2 ай бұрын

    Meu amigo você caiu no conto da garocinha dá Rocket aqueles ano que decidiram fazer isso foi uma estratégia de mkt pararam de fazer porque não dá dinheiro vc precisa assinar a plataforma deles

  • 2 ай бұрын

    Eu prefiro assim, sinceramente, é tão gratificando pesquisar algo e encontrar exatamente aquilo que eu estava buscando. Outra questão, do que adianta fazer vídeos de 1h, que vão fazer a mesma quantidade de visualizações ou pior, por ser maior a maioria das pessoas não assistem e isso faz com que estes vídeos e o próprio canal acabe sendo menos recomendado.

  • @GladsonReis
    @GladsonReis2 ай бұрын

    Diego é um cara sensacional ! Puts

  • @HerlonCosta
    @HerlonCosta2 ай бұрын

    Muito prático, sensacional chará!!

  • @FernandoSebastiao888_dev
    @FernandoSebastiao888_dev2 ай бұрын

    Muito Obrigado pelo conteúdo disponibilizado. Parece que tens ouvido as nossas pressas 🙏🙏

  • @caiomendes79

    @caiomendes79

    2 ай бұрын

    real

  • @artur-bb6js
    @artur-bb6js2 ай бұрын

    Que vídeo incrivel, estou dando uma olhada sobre validações em react, vou começar utilizar esse zod para gerenciar as validações

  • @ustav_o

    @ustav_o

    2 ай бұрын

    ele é muito bom mesmo! depois quando você precisar de algo mais complexo é so usar a função regex dele q funciona perfeitamente

  • @ebr182
    @ebr182Ай бұрын

    ótima dica, o que me preocupa é quando devs menos experientes começam a colocar regras de negócio aí kk

  • @DouglasSouza-te9bt
    @DouglasSouza-te9bt2 ай бұрын

    cara, como alguém pode chegar a esse nível de conhecimento? Como estudar? como realmente progredir nos estudos? sinto que consigo fazer algumas coisas mas sequer consigo explicar o por que de estar funcionando ou de não estar funcionando

  • @ivocorrea2481

    @ivocorrea2481

    2 ай бұрын

    mini cursos (indicos os da udemy), ler documentação da linguagem/frameworks/libs e iniciando e terminando projetos

  • @MarcusTorres-zv5cv

    @MarcusTorres-zv5cv

    2 ай бұрын

    Apenas fazer o que ele faz consumir curso em inglês e seguir os grandes mestres da área. Basicamente aprende inglês e consuma conteúdo em inglês todo dia

  • @monetizacao2119
    @monetizacao21192 ай бұрын

    Fala um pouco sobre o UnoCSS, tem uma galera falando que ele vai desbancar o tailwind... Abraço!

  • @Matheus_1582
    @Matheus_15822 ай бұрын

    Eu queria ver o Diegão criar alguma coisa usando o Framework HILLA

  • @baianofinancas
    @baianofinancas2 ай бұрын

    Vai ter react-hook-forms com server-actions no curso de saas? Outra coisa vai ter react-query com server componentes?

  • @arozendojr
    @arozendojr2 ай бұрын

    Peguei uma particularidade do js, nem zod ajudaria, coloquei tipo no response igual ao swagger, { data: "", encoder:""} não conseguia fazer o blob , dava erro, depois descobri que o response era o blob , consegui gerar .png, moral da história, mesmo tirando, o código é executado como js, logo não teria o erro de parse

  • @unknownsudo1685

    @unknownsudo1685

    2 ай бұрын

    Eu te entendo, eu uso o Zod em meus projetos. No entanto, o que achei difícil foi fazer a validação de imagens/arquivos (File) no lado do servidor com ele.

  • @GabrielHenrique-bk3uy
    @GabrielHenrique-bk3uy2 ай бұрын

    Que tema é este??????????????????? Edit: Tema é Vesper++

  • @BrenoCarv
    @BrenoCarv2 ай бұрын

    Qual tema desse VScode?

  • @cristianomachado3687
    @cristianomachado36872 ай бұрын

    Um duvida, existe como reaproveitar o mesmo validador feito pelo zod tanto no front e back, tipo apontando ao mesmo arquivo do schema para manter a consistencia ou se estive falando besteira, algo semelhante para isso e qual a melhor pratica, obrigado pelo video! :D

  • @kayooliveiradev

    @kayooliveiradev

    2 ай бұрын

    Com certeza, se os dados transitados serão os mesmos não tem problema em ter a mesma validação em ambos.

  • @cristianomachado3687

    @cristianomachado3687

    2 ай бұрын

    @@kayooliveiradev ola, ta, qual é a melhor forma de fazer isso em um projeto? copiar o arquivo do schema de validacao, em ambos os projetos, tipo back, front e ambos terem uma copia do mesmo arquivo? ou um terceiro diretorio só com arquivos em comum ?

  • @kayooliveiradev

    @kayooliveiradev

    2 ай бұрын

    @@cristianomachado3687 Copiar os arquivos mesmo, não há problema, a nao ser que seja um monolito, aí voce cria uma pastinha pras schemas e compartilha, por exemplo.

  • @cristianomachado3687

    @cristianomachado3687

    2 ай бұрын

    @@kayooliveiradev não é um problema, funciona, mas essa é a melhor pratica? mesmo sendo um monolito? e se nao for?

  • @gabrielqueiroz7792

    @gabrielqueiroz7792

    2 ай бұрын

    Eu gosto de pensar nas aplicações que desenvolvo como itens isolados, por mais que o meu backend seja especifico para anteder minha interface. Nesse caso não teria problema algum criar o arquivo igual tanto no front como no back. Mas e preferencia minha, não faço ideia se esta ferindo alguma boa pratica

  • @caiofeiria
    @caiofeiria2 ай бұрын

    Qual é esse tema?

  • @thiagoalvesfoz
    @thiagoalvesfoz2 ай бұрын

    Acho o yup com formik mais fácil

  • @rodrigoserrasqueiro
    @rodrigoserrasqueiro2 ай бұрын

    Nesse caso não seria melhor fazer a validação do formulário no client? Tipo assim, quando não tem nada que precise necessariamente ser processado no servidor como uma senha, um arquivo ou algo do tipo? Porque ai ficaria mandando requisições "a toa" pro servidor só pra ver se tem todos os dados...ou tem algum motivo especifico pra ser assim?

  • @gabrielqueiroz7792

    @gabrielqueiroz7792

    2 ай бұрын

    seu backend pode receber requests vindo de outros clients, o postman por exemplo. E fora do seu client, nao existe a validacao, por isso e importante adicionar a validacao nos 2 lados. Voce pode pensar na validacao do client como sendo um helper para o usuario nao bater no servidor com um request invalido, economizando tempo e processamento.

  • @gabrielqueiroz7792

    @gabrielqueiroz7792

    2 ай бұрын

    E caso ocorra de bater um request invalido no seu backend, ele esta "defendido" para nao gerar comportamentos inesperados ou dados inconsistentes

  • @rodrigoserrasqueiro

    @rodrigoserrasqueiro

    2 ай бұрын

    @@gabrielqueiroz7792 Entendi. Realmente faz sentido. Obrigado!

  • @thommy_80
    @thommy_802 ай бұрын

    Dúvida No zod tudo é obrigatório a menos que você coloque .nulable?

  • @daaxzinn

    @daaxzinn

    2 ай бұрын

    Se não me engano você pode usar .optional() também, fora isso, tudo é obrigatório

  • @rafaelsantana588

    @rafaelsantana588

    2 ай бұрын

    Para um campo ser opcional, você pode usar .optional(), .nullish() ou .nullable() .optional() aceita o tipo que você colocou no schema ou undefined .nullable() aceita o tipo que você colocou no schema ou null .nullish() aceita o tipo que você colocou no schema ou undefined ou null Outra opção também é após o seu z.object({…}) você adicionar um .partial() que faz a mesma coisa que colocar .optional() em todos os campos. E esse .partial() aceita um objeto como parâmetro, que você pode definir quais campos serão opcionais, caso não queira que todos sejam, aí é só passar .partial({ campo1: true, campo2: true }) que os campos 1 e 2 ficarão como opcionais e os demais não (claro que se os demais campos tiverem .optional(), estes também ficarão opcionais)

  • @caiomatheustre18
    @caiomatheustre187 күн бұрын

    Pra mim não faz muito sentido usar isso no backend quando se usar Prisma e Typescrip, a própria tipagem já faz essa validação caso veja algum dado "errado". Acho que isso só faz o código ficar mais carregado e complicado.

  • @harukayamamotodev
    @harukayamamotodev2 ай бұрын

    I'm number 4

  • @kalwe1
    @kalwe12 ай бұрын

    Como remove a title bar do vscode ?!?

  • @Caponni

    @Caponni

    2 ай бұрын

    Tem um video dele ensinando a deixar o vscode minimalista. Dá uma olhada aí

  • @carlosallbertodev

    @carlosallbertodev

    2 ай бұрын

    Usa Windows?

  • @kalwe1

    @kalwe1

    2 ай бұрын

    @@carlosallbertodev N

  • @kalwe1

    @kalwe1

    2 ай бұрын

    @@Caponni Eu ja tnha feito aquela config, mas n deu, deve ser a versao do meu vscode...

  • @Caponni

    @Caponni

    Ай бұрын

    no video ele não deixou bem claro mesmo a parte da title bar. dei uma olhada aqui e consegui remover ela assim: primeiro instale a extensão apc, depois no seu .json coloque as seguintes configurações "window.titleBarStyle": "native", "apc.stylesheet": { ".title-label > h2": "display:none", ".editor-actions": "display:none" }, "apc.listRow": { "height": 24 }, "apc.electron": { "frame": false },