O que são pipes No NestJs Pipe é uma classe que esta anotada com o decorator @Injectable na qual implementa a interface PipeTransformation
PIPE
PIPE
@GET() ROUTE CLIENT-SIDE HANDLER
FILTER
FILTER
Pipes no geral servem para:
Transformar o input do dado no formato desejado Validação dos dados de entrada, caso seja avaliado como válido o dado de entrada passar senão irá lançar uma exceção O que são pipes No nível do controller o pipe validation é muito usado, pois antes do método ou handler ser chamado o mesmo passa por um pipe como um argumento e faz o processo de validação ou transformação;
Depois do pipe finalizado é chamado o
handler, Nest vem com pipes embutidos e implementados por debaixo dos panos mas também é possível desenvolver personalizado de acordo como que você queira;
Neste post eu vou te mostrar como vincular pipes
integrados ao handler e criar um pipe personalizado e vincular o mesmo a um handler. binding pipes ParseUUIDPipe garante que o handler passe UUID certo como parâmetro.
Um exemplo prático seria pra busca de um User pelo seu id,
vamos considerar esse id como UUID. Nesse caso é importante garantir que o que for ser buscado pela camada do controller seja um UUID válido, nesse caso da pra usar o ParseUUIDPipe para validar o mesmo. Este pipe é chamado antes de executar o handler
Usando o exemplo acima se o UUID vier errado um
erro com status code 400 irá estourar com a mensagem de um UUID válido esperado custom pipes Todo pipe deve implementar o método transform() para cumprir o contrato na interface PipeTransform, esse método utiliza: Valor: argumetno que se passa ao Pipe Metadata: meta detalhes dos argumentos Global pipes Quando utilizei NestJS essa foi a funcionalidade que mais curti, pois com Global Scoped Pipes é possível anexar qualquer pipe à nível global. Em seguida esse pipe será aplicado a qualquer rota em qualquer controller em todo o projeto. Global pipes Se o pipe precisar ser especificado em um único módulo sem ser global, é possível vincular o pipe dentro do módulo que queira Se você curtiu esse post ajude ele a alcançar mais pessoas pois Pipes são incríveis