📄️ Introdução
ExpressoTS é um framework super leve desenvolvido em TypeScript para construir aplicativos escaláveis, legíveis e mantidos no lado do servidor.
📄️ Primeiros Passos
Nesta seção, você vai mergulhar nos conceitos centrais do ExpressoTS para se familiarizar com o framework e seus componentes básicos.
📄️ Aplicação
A Visão Geral da Aplicação oferece uma demonstração abrangente dos principais componentes de uma aplicação ExpressoTS. No coração de uma aplicação ExpressoTS está a classe Application. Ela serve como base para criar e configurar o servidor. Além disso, a classe Application utiliza o container de aplicação do Inversify para carregar todos os módulos, incluindo suas respectivas rotas [controladores]. Isso garante um processo eficiente para lidar com solicitações recebidas e entregar as respostas apropriadas.
📄️ App Container
O ExpressoTS usa InversifyJS como seu ioC (Inversão de Controle) container, pois é uma ferramenta poderosa para gerenciar injeção de dependência. O Inversify é um container com suporte a tipos que pode ser utilizado para gerenciar a instância e resolução de objetos, bem como o gerenciamento do ciclo de vida deles.
📄️ Módulos
Um módulo de contêiner é uma coleção de serviços, no nosso caso mais especificamente Controllers e suas dependências que podem ser registrados e resolvidos pelo contêiner InversifyJS.
📄️ Controladores
Os Controladores atuam como a principal interface entre o cliente e o servidor em aplicações Node.js. Eles lidam com as requisições recebidas, validam os dados conforme o DTO de entrada, e retornam as respostas no formato DTO. Em essência, os controllers atuam como a ponte entre os clientes e as camadas de serviço, também conhecidas como casos de uso.
📄️ Casos de Uso
Do ponto de vista da UML, os casos de uso fornecem uma maneira de modelar as interações entre usuários, outros sistemas e um aplicativo de software. Um caso de uso descreve um cenário específico ou fluxo de eventos entre os atores e o sistema, levando a um determinado resultado.
📄️ Provedores
Do ponto de vista da arquitetura limpa, os Providers são responsáveis por fornecer dados e/ou mecanismos para componentes de nível superior no sistema, como casos de uso ou apresentadores, e podem abstrair os detalhes de como os dados/mecanismos são realmente recuperados, armazenados ou executados. Essa abstração permite que o sistema mude facilmente entre diferentes fontes/provedores de dados sem afetar os componentes de nível superior.
📄️ Repositórios
No ExpressoTS, uma classe de repositório geralmente inclui métodos como create, update, find, findOne e delete, que correspondem a operações comuns de CRUD (Create, Read, Update, Delete) no armazenamento de dados. Esses métodos podem ser implementados usando uma biblioteca de banco de dados ou uma ferramenta de ORM (Object-Relational Mapping) como o TypeORM, Prisma, Sequelize, etc.
📄️ Entidades
As entidades são os componentes principais de uma aplicação ExpressoTS. Elas são os objetos que são usados para representar os dados que serão manipulados pela aplicação.
📄️ Decoradores
Aqui está uma lista completa de todos os decoradores que estão disponíveis no ExpressoTS, bem como uma breve descrição do que eles fazem.
📄️ Injeção de Dependências
Dependency Injection (DI) é um padrão de design usado no desenvolvimento de software que envolve fornecer a um objeto as instâncias das classes necessárias para executar suas tarefas, em vez de fazer com que ele mesmo construa essas instâncias. Este processo de fornecer instâncias é chamado de injetar nelas, daí o termo Injeção de Dependência.
📄️ Dependências
O propósito desta seção é listar todas as dependências usadas pelo ExpressoTS e nossa visão sobre o gerenciamento de dependências.
📄️ Código de Status
O código de status é uma forma de representar o resultado de uma requisição. Essas respostas HTTP indicam se uma solicitação HTTP específica foi concluída com êxito. As respostas são agrupadas em cinco classes:
📄️ Gerenciamento de Error
Quando se trata de tratamento de erros nas APIs TypeScript do Node.js, existem várias práticas recomendadas e abordagens que você pode seguir. O ExpressoTS fornece uma maneira simples e fácil de lidar com erros.
📄️ Teste
Os testes de unidade e os testes de integração são importantes em qualquer processo de desenvolvimento de aplicativos porque servem a propósitos diferentes.
📄️ Renderizacão
Express.js oferece um método render para renderizar uma visualização e enviar a sequência HTML renderizada para o cliente.