Criando uma aplicação REST com NestJS, Fastify e TypeORM | programaDev
01 de junho de 2021 • 18 min de leitura
Utilizando Typescript no backend
Com a definição do domínio e dos casos de uso, que compõe o core da aplicação está na hora de "plugar" os adaptadores que serão as implementações das portas definidas no domínio.
Obs: a estratégia eager deve ser evitada nos casos onde a consulta possa retornar muitos resultados pois pode sobrecarregar o banco de dados e causar lentidões e problemas indesejados.
É bom salientar que o NestJS trabalha muito bem com a ideia de módulos e por isso foi a estratégia abordada nesse projeto, então temos agora o módulo TypeOrmConfigModule em que as classes do adaptador TypeORM são "amarradas" e agora vamos entender também parte a parte da definição desse módulo:
Na sequência é feito uso do DynamicModule do NestJS onde podemos criar providers dinâmicamente passando o que deve ser injetado, nesse caso o LivroRepositoryTypeORM, um provider que será o nome pelo o qual iremos injetar a instância onde formos usar, podendo ser CREATE_LIVRO_SERVICE ou FIND_ALL_LIVRO_SERVICE no nosso exemplo e um método chamado useFactory que é um método que irá "fabricar" a instância desejada passando a dependência correta:
@Controller('livro'): Decorator usado para indicar que essa classe será usada como um endpoint, é passado uma string para informar qual será o path, no exemplo foi passado a string livro então o path será /livro.
@Post(): Também usado na raiz /livro para indicar que é possível enviar um POST no endpoint.
Por fim vimos como usar o Fastify na aplicação, o que é extremamente simples e transparante quando estamos usando NestJS.