Digivice Api


A Digivice API é uma ferramenta que permite acessar informações sobre Digimons. Ela se integra a uma fonte externa de dados sobre essas criaturas digitais e oferece a flexibilidade de filtrar os resultados com base em critérios como nome e nível. Isso torna a consulta de informações sobre Digimons mais fácil e personalizável para atender às suas necessidades específicas.

Tecnologias utilizadas:

  • Java 17.0.6
  • Spring Boot 3.1.5
  • Maven
  • IntelliJ

Tópicos


local

Rodando localmente

linha_comando

Por linha de comando

  • Requisitos: É preciso ter o Maven e o JDK na versão 17 ou maior, instalados e configurados no sistema.

Clonando o repositório

  • Faça o clone do seguinte repositório:
      git@github.com:cesarrafaeljunior/digivice_api.git
    

  • Abra a pasta do diretório utilizando o terminal/IDE, estando na raiz do projeto rode o comando para compilar o projeto:
      mvn spring-boot:run
    

  • A seguinte mensagem significa que a api está pronto para ser utilizada:
      2023-10-29T15:30:29.066-03:00  INFO 13788 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
    

  • Utilize o Imsonia ou qualquer outro software de chamadas HTTP para testar as rotas da API.
  • Documentação da api
docker

Utilizando o Docker

- Requisitos: É preciso ter o Docker instalado e configurado no sistema.

Clonando o repositório

  • Faça o clone do seguinte repositório:

      git@github.com:cesarrafaeljunior/digivice_api.git
    

  • Após a compilação, rode o seginte comando para buildar a imagem do projeto a partir das configurações do aquivo Dockerfile:

       docker build -t myapp .
    

    OBS: Este processo pode demorar alguns minutos.


  • Suba um contâiner para rodar a imagem da aplicação utilizando o seguinte comando:

      docker run -p 8080:8080 myapp
    

  • Utilize o Imsonia ou qualquer outro software de chamadas HTTP para testar as rotas da API.

  • Documentação da api


doc

Documentação da api

UrlsBase:

Requests

Digimons

all_digimons

Buscar todos os digimons

GET /digimons - FORMATO DE RESPOSTA- Status Code - 200

Exemplo de resposta

[
   {
     "name": "Koromon",
     "img": "https://digimon.shadowsmith.com/img/koromon.jpg",
     "level": "In Training"
   },
   {
     "name": "Tsunomon",
     "img": "https://digimon.shadowsmith.com/img/tsunomon.jpg",
     "level": "In Training"
   },
   {
     "name": "Yokomon",
     "img": "https://digimon.shadowsmith.com/img/yokomon.jpg",
     "level": "In Training"
   },
]

digimon_by_name

Buscar Digimon pelo nome

GET /digimons?name=Koromon - FORMATO DE RESPOSTA- Status Code - 200

Exemplo de resposta

[
   {
     "name": "Koromon",
     "img": "https://digimon.shadowsmith.com/img/koromon.jpg",
     "level": "In Training"
   }
]

digimon_not_name

Buscar Digimon com nome não existente

GET /digimons?name=pikachu - FORMATO DE RESPOSTA- Status Code - 400

Exemplo de resposta

{
   "timestamp": "2023-10-30T03:10:02.850076Z",
   "status": "BAD_REQUEST",
   "error": "Pikachu is not a Digimon in our database.",
   "path": "/digimons"
}

digimon_by_level

Buscar digimons por level

Leveis disponíveis

levels
  • In Training
  • Rookie
  • Champion
  • Ultimate
  • Fresh
  • Mega
  • Armor

GET /digimons?level=armor - FORMATO DE RESPOSTA- Status Code - 200

Exemplo de resposta

[
   {
     "name": "Flamedramon",
     "img": "https://digimon.shadowsmith.com/img/flamedramon.jpg",
     "level": "Armor"
   },
   {
     "name": "Raidramon",
     "img": "https://digimon.shadowsmith.com/img/raidramon.jpg",
     "level": "Armor"
   },
   {
     "name": "Magnamon",
     "img": "https://digimon.shadowsmith.com/img/magnamon.jpg",
     "level": "Armor"
   },
   {
     "name": "Sethmon",
     "img": "https://digimon.shadowsmith.com/img/sethmon.jpg",
     "level": "Armor"
   },
]

not_levels

Buscar Digimons com level não existente

GET /digimons?level=big - FORMATO DE RESPOSTA- Status Code - 400

Exemplo de resposta

{
   "timestamp": "2023-10-30T03:14:34.160189300Z",
   "status": "BAD_REQUEST",
   "error": "Big is not a level in our database.",
   "path": "/digimons"
}
level_and_name

Buscar Digimon pelo level e nome

GET /digimons?level=rookie&name=agumon - FORMATO DE RESPOSTA- Status Code - 200

Exemplo de resposta

[
   {
     "name": "Agumon",
     "img": "https://digimon.shadowsmith.com/img/agumon.jpg",
     "level": "Rookie"
   }
]