Para a solução do teste, escolhi a linguagem Java com framework Springboot. Na aplicação busquei simplicidade na codificação. Utilizei de injeção de dependências via dump/backup do Mysql, e posteriormente será restaurado em um container em execução.
- Os endpoints da aplicação tem CRUD completo, embora tenha sido solicitado apenas as requisições de GET.
- Na URI temos três contextos:
- '/racas' - acessa as raças e suas informações.
- '/chapeu' - retorna as três imagens de gato com chapéu.
- '/oculos' - retorna as três imagens de gato com óculos.
- Docker Desktop(para buildar os containers)
- Postman(para consumir API)
- Git(para clonar o projeto)
-
Clone o repositório em seu diretório local.
- Utilize o comando: git clone https://github.com/Erick-Neves/Cats-API.git
-
Abra o Docker Desktop para inicializa-lo.
-
Na pasta do projeto navegue até o diretório que contem o docker-compose.yml
-
Abra um terminal dentro desta pasta.
-
Agora devemos buildar nossa aplicação dentro do Docker:
- No terminal, verifique se existe algum container ativo com o comando: docker ps
- Utilize o comando para buildar: docker-compose up -d --build
- Verifique se o container está ativo com o comando: docker ps
- Agora copie o 'CONTAINER ID' de catapi_cat-api.
- Cole o 'CONTAINER ID' no comando: docker logs -f 'CONTAINER ID'
- Quando aparecer "JVM running for 15.473", use o atalho CTRL+C duas vezes, para voltar a usar o terminal.
- Para popular nosso banco, utilize o comando: docker exec -i catapi_db_1 mysql -uroot -p"rootadmin" db_catapi < db_catapi.sql
-
Agora devemos consumir nossa API via Postman:
- Com a aplicação rodando no docker, podemos acessar a documentação do projeto pelo link: http://localhost:9000/swagger-ui.html#/
- Abra o Postman, e importe a collection que está dentro da pasta "../Cats-API/Documentação"
- Escolha alguma das requisições para fazer os testes.