- Everton M. L. Gonçalves - EvertonMLGoncalves
- Bernardo C. - bchiamolera
- Lucas C.Belletti - lucascbelletti
- Matheus Eduardo - Buggyes
O objeto do nosso projeto é construir uma API para controle de entrada e saída de aliens da terra conforme solicitado pelo nosso instrutor. Nós utilizamos o ASP .NET para construir a API, e o Entity framework para acessar o banco de dados. Como funcionalidade extra, adicionamos um módulo de envio de e-mails, que envia um e-mail para o e-mail fornecido pelo usuário na hora do cadastro sempre que um Alien é cadastrado ou atualizado.
A entidade Alien possui uma relação de n para n com a Entidade Poder e outra relação de n para 1 com a entidade Planeta.
git init
git clone https://github.com/EvertonMLGoncalves/Aliens_API
"ConnectionStrings": {
"DefaultConnection": "server=SEU-SERVIDOR-SQL-SERVER;database=alienDb;trusted_connection=true;TrustServerCertificate=True"
},
Dica: o nome do servidor pode ser obtido abrindo o SQL Server Management Studio (SSMS) no seu computador. Caso não possua, é recomendável a sua instalação
add-migration (qualquer_nome)
update-database
Após ter feito isso, sua solução deve estar pronta para rodar. Fique atento aos próximos passos para a configuração do módulo de envio de e-mails.
"EmailHost": "seu_serviço_de_mensageria"
"EmailUsername": "seu_usuário@servico.com"
"EmailPassword": "sua_senha"
Após ter feito isso, seu módulo de envio de e-mail deve estar pronto para o uso. Lembrando que seu endereço é:
https://localhost:7043/api/Email
- É onde toda a aplicação é executada;
- Executa a conexão com o banco;
- Contém os escopos, que é o que permite a injeção de dependências.
- É aqui que é estabelecido qual servidor SQL-Server será utilizado, junto com o nome da base de dados.
- Contém as interfaces e as classes services de cada entidade;
- Cada classe service contém uma injeção de dependências de DataContext, o que permite o acesso ao banco;
- As classes services que são responsáveis pelo acesso ao banco, sendo executadas nos controladores para realizar as funções relacionadas à cada rota.
- É aqui onde estão localizadas as nossas três classes; primordiais: Alien, Poder e Planeta.
- São as migrações, ou seja, a parte responsável pela criação das tabelas no banco de dados.
- Contém a interface ISmtp e a classe Smtp, que é responsável pelo envio de e-mails através da requisição feita ao módulo de e-mails.
- É onde todas as classes DTOs estão localizadas;
- As DTOs são utilizadas para o cadastro, retorno e atualizações de Aliens, Planetas e Poderes na classe service;
- Elas também são utilizadas nos controladores, para poderem ser utilizadas como parâmetros para os métodos das classes services.
- Contém a classe DataContext, que herda de DbContext;
- É aqui que é arquitetado como as conexões com o banco da dados irão funcionar.
- Contém os controladores que atenderão às requisições HTTP;
- Os controladores também são responsáveis pela validação de dados.
- Executa toda a API e contém os escopos de IEmailService e Email_Service.
- Contém a interface IEmailService e a classe Email_Service;
- É aqui que toda a lógica de envio de e-mails é feita e executada.
- Contém a classe DTO de email, que serve para pegar as informações necessárias para o envio de e-mails.
- A classe controller de e-mails contém uma injeção de dependências de IEmailService;
- A classe controller também é responsável por atender às requisições HTTP POST de envio de e-mails.