Olá esse é o integration developer bootcamp estamos na etapa de boas práticas e desenvolvimento e hoje falaremos sobre o componente validator é utilizado para fazer validações na plataforma então componente validator é utilizado para validar a estrutura de um Jon recebido como input retornando erro caso a estrutura não seja a esperada Seu principal e único caso de uso é validar a estrutura do Jon presente no payload do pipeline e é importante saber o seguinte validator utiliza a tecnologia Jason schema é uma tecnologia externa à plataforma dessa forma você pode buscar para alguma ferramenta online para produzir
um esquema para você a partir do payload informado eh o outro ponto é que ele é comumente utilizado dentro de um block execution para facilitar o tratamento em caso de erro visto que ao ao passar por algum tipo de erro na na validação ele vai parar o fluxo e utilizando um Block execution vai parar apenas o subfluxo podendo ser feito um tratamento posterior para entender melhor sobre o componentes seus parâmetros nós vamos acessar a plataforma e entender o seu funcionamento com a plataforma aberta eu posso dar alguns exemplos utilizando seguinte componente e seguinte ção de
entrada aqui dentro Eu tenho cinco propriedades ID nome empresa C e teste e ao executar Sem explicar o que está acontecendo aqui dentro essa mesma mensagem ela é repetida aqui isso acontece quando a mensagem que foi passada como dião de entrada ela foi validada corretamente pelo componente sem nenhum problema agora se eu passar algum problema por exemplo se eu tirar um essa propriedade é a propriedade do novamente vou tirar o CP e eu vou Executar a aqui eu tenho um erro estorado pelo validator vamos entender o porque isso aconteceu abrindo as configurações do componente Eu
tenho um Jason esima aqui dentro vamos entender o que que essas propriedades significam e aqui dentro Eu tenho dois atributos que são required e properties sendo esse eh nos informando Quais são os campos mandatórios do payload então eu tenho por exemplo ID nome CP e empresa que são mandatórios Isso significa que como eu fiz anteriormente se eu tirar o CP doload C que é considerado mandatório ele vai estourar algum erro entretanto o teste que não está aqui não vai estourar um erro então vamos fazer esse teste aqui eu vou tirar o Sep novamente no caso
já tirei e eu tenho essa mensagem as propriedades obrigatórias estão faltando que é o CP agora se eu tirar a propriedade teste que não é obrigatória nada acontece visto que a a propriedade não era obrigatória Então ela passou direto isso significa que o validator funcionou corretamente eh Outro ponto é nas propriedades nós conseguimos definir Quais são os formatos e os tipos que elas terão então das propriedades que foi que estão como obrigatórias eu tenho por exemplo o ID precisa ser do tipo número o nome precisa ser do tipo string e o c precisa que precisa
ter o seguinte padrão né seguinte expressão regular ele vai ter eh os algarismos 0 A9 repetidos cinco vezes traço algarismo 0 A9 repetido três vezes então qualquer outro formato que não informado aqui ele ocorrerá algum erro utilizar coisas que não são algarismos por exemplo letras também ocorrerá um erro e por fim temos aqui que na empresa o tamanho mínimo é de um caractere então se eu passar uma empresa com o os valores vazios também vai ser disparado um erro vamos ver alguns desses exemplos na prática mas antes disso eu vou pegar essa propriedade vou colocar
como falsa e o que vai acontecer é o seguinte temos quatro propriedades informadas aqui no nosso esquema que são essas quatro de cima e temos o teste que não foi formado e continua no payload caso eu coloque essa addal prop como false eu não vou aceitar que outr propriedades que não foram as que foram formadas estejam no payload então se eu apertar play ele vai passar normalmente entretanto se eu voltar com essa propriedade test um ele vai disparar um erro que existem propriedades que não são permitidas no meu esquema agora se eu lidar com outros
problemas como colocar um algarismo eh uma letra dentro do CEP um outro erro vai ser disparado que ele está falando que a expressão regular ela não bate com que foi definido Então vou voltar ao normal Vou colocar aqui a empresa por exemplo como eh vazia e que o novo erro disparado é a minha empresa ela a string dela é pequena demais o tamanho que foi encontrado é zero sendo que o requerido o obrigatório É no mínimo um eu tenho por exemplo aqui o ID que era como formato numérico eu posso transformar ele em um string
para testar e aqui a gente vai perceber a string não bate né com o tipo formado que era para ser um número inteiro ou nmero Voltamos para o valor inteiro temos essa opção agora se eu tirar por exemplo duas propriedades que são obrigatórias mead e apertar play eu tenho aqui propriedades obrigatrias estão faltando Eu tenho tanto quanto empresa faltando demonstração como que funciona a validação por meio do validator utilizando Jason Skema ele é muito útil para verificar se a informação que chega ela eh está validada ela está pronta para ser transformada e continuar pelo fluxo
eh esse caso é o caso de sucesso em que todas as informações estão corretas então o pelod ele repete no no json de saída eu vou colocar aqui um json generator com uma propriedade chamada success como true para fazer uma demonstração então ao apertar play ele me retorna success trow que foi o que eu defini agora se eu colocar qualquer problema aqui como por exemplo um número a mais ele vai me dar um erro e perceba que ele parou no validator ele não chegou no set success Isso significa que o validator Eh caso a mensagem
não esteja correta ele interrompe o fluxo e a gente precisa ficar de olho Nisso porque eventualmente nós não vamos querer que o fluxo ele termine que ele seja interrompido nós vamos querer na verdade fazer algum tipo de alteração eh no meio Deon para que dessa vez ele tenha eh os valores adequados para continuar a transformação e pensando nisso para resolver esse problema nós vamos utilizar o Block execution eh para colocar esse esse validator dentro do Block execution e tratar essa informação esse erro no Exception mas esse é um assunto para uma próxima aula por fim
eu queria mostrar para vocês que na as configurações do pipeline temos também dois Campos chamado inpc e outpec ambos os campos utilizam da mesma tecnologia do validator Isso significa que eu posso validar a entrada do meu pipeline que vem pelo Trigger diretamente nas configurações pipeline utilizando json schema e da mesma forma eu posso fazer pro outpec eu posso colocar um json schema que verifica se a saída do pipeline possui o formato eh o tipo de dado específico que foi definido pelo meu esquema Essa foi a apresentação sobre validator e nos vemos numa próxima aula