Aula 26
Validação de Campo no Resolve da Mutation do GraphQL (Aula Tutorial)
Summary
# Resumo da Aula sobre Validação de Entradas
Na aula de hoje, discutimos como realizar validações de entradas, especialmente na mutação para adicionar uma nova companhia. O exemplo abordado foi a validação de um site que deve começar com "HTTP" para garantir que não seja um link quebrado.
## Validação de Site
1. **Objetivo**: Validar se a string do site começa com "HTTP".
2. **Método**: Utilizar uma expressão regular.
- Estrutura: `/^HTTP/`
- O símbolo `^` indica o começo da string.
3. **Teste no Navegador**:
- Usamos `HTTP.test(input.site)` para verificar a validação.
- Se a string não começa com "HTTP", o resultado será `false`.
## Implementação da Validação
1. No resolve da mutação `adicionarCompanhia`, implementamos a validação.
2. Caso a validação falhe, um novo erro é gerado:
```javascript
throw new Error("O site deve começar com HTTP");
- Ao testar no GraphQL:
- Se um site inválido (ex: "HTTPX") for adicionado, um erro será retornado.
Conclusão
Adicionamos validações diretamente nas mutações, permitindo verificar condições como a formatação de um site ou a validade de uma data. Essa prática é essencial para garantir a integridade dos dados fornecidos.
Exercício
- Praticar adicionando validações adicionais, como a confirmação de que a data está correta.
A aula termina aqui. Até a próxima!
Video Transcript
Fala pessoal, nesta aula vamos falar um pouco aqui de como você pode fazer validação
de entradas, por exemplo, se você tiver companhia e você, por exemplo, alguém digitar o site,
para uma string para o site que não tem HTTP no começo da string, então seria um link
quebrado talvez, então você pode fazer essa validação aqui, se você for lá no esquema
da s, lá quando você for criar uma companhia, aqui no companhia, cadê? na mutação, tem
a mutação mute-txt aqui para adicionar a companhia, essa mute-txt tem um resolve que
vai resolver, vai fazer a criação da companhia, aí do resolve da mutação adicionar a companhia,
você pode adicionar uma validação aqui, por exemplo, se você quiser checar se o site
contém uma string e começa com HTTP, pode fazer o seguinte, você vai aqui e põe o
state para checar, se o site começa com HTTP, para poder fazer isso você pode usar uma
expressão regular, põe as duas barras, põe o circunflexo para dizer que é o começo da string,
seguido de HTTP, então você pode usar ponto test e passa a string que você quer testar,
nesse caso vai ser input.site, então esse cara aqui se você fizer, ele vai pegar, dar uma
olhada nessa string e se começar com HTTP ele vai retornar true, vamos olhar no navegador para
ver como isso funciona, estou aqui no navegador, deixo abrir o console, então se eu tiver por
exemplo o site é HTTPX, está errado né, e eu vou que quiser testar esse cara, eu posso dizer duas
barras com o mês da string, HTTP ponto test e a variável, a string né, então você note que ele
retorna falso porque não começa com HTTP, mas se tivesse começado HTTP você testa agora
o true, está certo? Então vamos fazer isso, voltando ao editor de texto aqui no nosso resolve
para a mutação adicionar a companhia, você vai fazer, para você poder dizer que houve um erro de
realização, é só você dar o true, new error, você cria um novo erro, uma mensagem né, a site tem
que começar com HTTP por exemplo, vamos ver no que dá, onde ele faz isso, vamos lá no navegador
pro graphical, eu vou fazer uma mutation, adicionar companhia, o input vai ser, vamos só
adicionar o site que HTTPX, porque está errado, deixa só assim, eu quero que retorne o ID
e o site, então eu falei porque já tem validação padrão para campo obrigatório, que a gente usou
não, então vamos adicionar o nome, companhia nova e fundada em, eu botar qualquer coisa aqui, note que
tem validação para data, você poderia também adicionar isso, tentar novamente, então adicionar
companhia, site no seu que, e parece que criou, vamos ver aqui, cadê o erro, query, eu quero pegar as
companhias, o ID, nome, site, dá o nome aqui para poder dar o play, se não tiver nome não vai dar certo,
então adicionar companhia para a mutation, nome dela, e obter companhias para essa query,
vou rodar o Bt com companhias, olha que adicionou mesmo, será que eu só vi, vamos ver aqui, parece que não deu certo,
eu vou dar o console logo para ver se entrou aqui, ah, eu acho que já sei, ter que negar esse cara, né,
vou ter que negar isso tudo, porque quando você teste o RetroNTrue, se for realmente começar com a HTTP,
mas eu quero só que executa esse cara, se realmente não começar, né, então ter que negar,
então era o negar aqui, vamos de novo lá, eu vou clicar adicionar companhia, então deu o erro já,
eu acho que eu termina o console logo, então agora está certo, deixa eu remover o console logo,
então só adicionar o sinal ali para negar, então voltando aqui para o cenote, query manda o erro,
diz o mensagem, site tem que começar com HTTP, que é o argumento que a gente passou por construir o erro,
tá, e ela diz o perf, adicionar companhia, que é o nome da notação, e dada você recebe no,
vamos obter companhias, você vê que não adicionou lá, tenta novamente adicionar, não deu certo,
obter companhias, nenhuma nova companhia adicionada, tá, então vamos avisar o que a gente fez,
então você pode adicionar validação de campos na própria mutação, por exemplo a mutação para adicionar
uma companhia, você pode fazer isso na função do método de resolvedor, resolve aqui antes de você criar
a sua companhia você vai checar pelos argumentos, nesse caso eu usei a expressão regular para ver se o
a string do site da companhia começa com HTTP, não esqueça de negar nesse caso para o teste,
para ver se tem um erro, aí o que você faz é você joga, throw um novo erro, tá, e diz o mensagem para
descrever o erro, você pode fazer isso até para testar aqui se a data estiver informado correto e outras
coisas, tá certo, você pode fazer isso como um exercício, tá, então por essa aula é só e até o próximo.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: