Entrega WeedWay#1
Open
AntonioAldisio wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
FASTAPI - DataSeed
Objetivo
Esse microserviço tem autenticação JWT e as seguintes rotas:
Com foi o desenvolvimento ?
O desenvolvimento foi executado :
O processo de desenvolvimento dessa etapa ocorreu sem problemas graves.
O processo de desenvolvimento dessa etapa ocorreu sem problemas graves.
O desenvolvimento dessa parte ocorreu sem problemas graves durante o processo de desenvolvimento.
Inicialmente, enfrentei problemas na conexão entre os contêineres, devido à inserção incorreta dos valores de IP e à ausência do banco de dados pré-existente para estabelecer a conexão. Além disso, foi identificado que era necessário criar um atraso para permitir a migração do contêiner da aplicação para o contêiner do banco de dados.
Para resolver essas questões, foram realizadas as seguintes ações:
Correção dos valores de IP: Os valores de IP dos contêineres foram revisados e corrigidos, garantindo que estivessem configurados corretamente para estabelecer a comunicação entre eles.
Criação do banco de dados: Foi criado um banco de dados pré-existente, contendo as tabelas e os esquemas necessários para a correta interação com a API. Esse banco de dados foi configurado e disponibilizado para que a aplicação pudesse se conectar a ele de forma adequada.
Implementação de delay: Foi adicionado um atraso específico na migração do contêiner da aplicação para o contêiner do banco de dados. Esse intervalo de tempo permitiu que o banco de dados estivesse completamente pronto e operacional antes da aplicação tentar se conectar a ele, evitando falhas de conexão.
Com essas medidas tomadas, foi possível solucionar os problemas de conexão entre os contêineres. Agora, a aplicação pode estabelecer uma conexão bem-sucedida com o banco de dados MySQL e utilizar as informações necessárias para o correto funcionamento da API.
O desenvolvimento de testes desempenha um papel crucial na validação do funcionamento correto da API e de seus endpoints. Para alcançar esse objetivo, foram criados testes unitários utilizando a biblioteca PyTest, com o objetivo de obter uma cobertura de teste de 80% ou mais.
No entanto, este tópico em particular apresentou desafios durante o desenvolvimento dos testes. Inicialmente, a ideia era realizar testes que envolvessem uma conexão real com o banco de dados, permitindo a verificação direta dos resultados e comportamentos da API.
Entretanto, devido limitações de tempo e conhecimento sobre a biblioteca, não foi possível prosseguir com essa abordagem. Em vez disso, a solução alternativa adotada foi utilizar um mock ... do request para simular as interações com o banco de dados. Embora essa solução alternativa não seja ideal para a construção de testes completos e realistas, permitiu continuar o desenvolvimento dos testes e avaliar os resultados em um ambiente controlado.
É importante reconhecer que, embora os testes com mocks possam fornecer uma cobertura básica, eles não são capazes de identificar todas as possíveis falhas e comportamentos inesperados que podem ocorrer com uma conexão real ao banco de dados. Portanto, essa abordagem deve ser considerada temporária, e a busca por uma solução mais robusta e abrangente deve ser realizada no futuro.
Após a implementação dos testes e o desenvolvimento da API, foi revalidado os endpoints para garantir que todas as alterações e correções tenham sido implementadas corretamente.
Como rodar o projeto
Utilizando Makefile
Subir os dockeres realizando o build da API
Se ja tiver a imagem da API na maquina:
Parar os conteiners
Sem Makefile
Subir os dockeres realizando o build da API
Se ja tiver a imagem da API na maquina:
Parar os continer
Como rodar localmente
Usando Makefile
Criar virtualenv e instalar bibliotecas
Rodar projeto
Executar os teste
Usando virtualenv
Criação do ambiente
Ativação do ambiente
$ source api/bin/activateInstalação dos pacotes necessários para rodar a API
Rodar a API(lembre-se de configurar o host, usuário e senha no arquivo #database)
Para rodar os testes é necessario instalar requirements-dev.txt
obs: Talvez seja necessario inserir esse env no terminal para rodar os testes.
Pontos de melhoria