Skip to content

Backend em Java para gerenciamento de animais e comidas, com upload de imagens para AWS S3 e banco de dados PostgreSQL em AWS RDS.

Notifications You must be signed in to change notification settings

inaciogabriell/animals

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Animals API

Descrição

O Animals API é um projeto de backend que permite o armazenamento e gerenciamento de informações sobre animais e suas comidas. As funcionalidades incluem:

  • Criação e armazenamento de animais e suas informações.
  • Criação de comidas que podem ser associadas a um ou mais animais.
  • Associação de comidas a animais existentes.
  • Filtros avançados para busca de animais com base em parâmetros específicos.
  • Upload de imagens de animais para um bucket S3 da AWS, com armazenamento do link público da imagem no banco de dados.
  • Endpoints para listar todos os animais e comidas, além de buscas detalhadas por ID.

Este projeto está rodando em uma instância EC2 da AWS e utiliza um banco de dados RDS. Não é necessário baixar e configurar o projeto localmente para testá-lo, mas o projeto está preparado para execução local, caso desejado.

URL do Projeto

A API está hospedada e disponível para uso no seguinte endereço:

54.207.157.234

Instalação do Postman

Para interagir com a API, você pode utilizar o Postman. Siga os passos abaixo para instalar e configurar:

Passo 1: Instalar o Postman

  1. Acesse o site oficial do Postman: Postman Download.
  2. Baixe a versão mais adequada ao seu sistema operacional (Windows, macOS ou Linux).
  3. Siga as instruções de instalação na tela.

Passo 2: Importar as Requisições

  1. Abra o Postman após a instalação.
  2. No menu superior, clique em Import.
  3. Selecione a opção de Upload Files e escolha o arquivo .json fornecido aqui (Arquivo de Requisições).
  4. Após a importação, todas as requisições da API estarão prontas para uso.

Passo 3: Testar a API no Postman

  1. Com o Postman aberto e as requisições já importadas, você verá uma lista de requisições à esquerda, no painel chamado Collections.
  2. Expanda a coleção Testes Animals AWS clicando no ícone de seta ao lado do nome da coleção.
  3. Clique em uma das requisições, como Create Animal (Criar Animal). Ao clicar, você verá os detalhes dessa requisição no painel central.
  4. No painel Body, escolha a opção form-data. É aqui que você pode preencher os campos necessários para criar um animal.
    • Por exemplo, no campo type, preencha true se o animal for doméstico ou false se ele for selvagem.
  5. Após preencher todos os campos, clique no botão Send, localizado no canto superior direito.
  6. O resultado será exibido no painel inferior, mostrando a resposta da API, que pode incluir o status da requisição e o conteúdo retornado, como o ID do animal criado.
  7. Para testar outros endpoints, como listar animais ou adicionar uma comida a um animal, siga o mesmo processo, clicando na requisição desejada, preenchendo os campos necessários e clicando em Send.

Endpoints da Animals API

  1. Criar Animal

    • Método: POST
    • URL: 54.207.157.234:8080/animals/animal
    • Descrição: Cria um novo animal com seus dados, incluindo upload de uma imagem local que será armazenada no bucket S3.
    • Parâmetros (form-data):
    • type (texto): Define se o animal é doméstico (true) ou selvagem (false). Esta escolha será refletida no frontend.
    • kind (texto): Exemplo: Cachorro
    • animalSpecies (texto): Exemplo: Pinscher
    • age (texto): Exemplo: 4
    • name (texto): Nome do animal
    • sex (texto): Sexo do animal
    • owner (texto): Nome do dono do animal
    • author (texto): Nome de quem adicionou esse animal
    • habitat (texto): Qual o habitat natural do animal, somente para animais selvagens.
    • image (arquivo): Upload de uma imagem do animal

  2. Criar Comida

    • Método: POST
    • URL: 54.207.157.234:8080/animals/food
    • Descrição: Cria uma nova comida no sistema.
    • Body (JSON):
  3. {

    "name": "Ração",

    "whereToGet": "Loja de animais",

    "price": "15.00"

    }
  4. Adicionar Nova Comida a um Animal

    • Método: POST
    • URL: 54.207.157.234:8080/animals/food/animal/{animalId}
    • Descrição: Cria uma nova comida e a associa diretamente a um animal pelo seu animalId.
    • Body (JSON):
  5. {

    "name": "Sachê",

    "whereToGet": "Loja de animais",

    "price": "4.00"

    }
    • Exemplo de animalId: 9729cc46-338a-4b60-8be3-6c3eb1d1c146

  6. Associar Comida Existente a um Animal

    • Método: POST
    • URL: 54.207.157.234:8080/animals/food/addFoodToAnimal/{animalId}/{foodId}
    • Descrição: Associa uma comida existente a um animal.
    • Parâmetros:
    • animalId: ID do animal ao qual você quer associar a comida.
    • foodId: ID da comida existente a ser associada.

  7. Buscar Todos os Animais

    • Método: GET
    • URL: 54.207.157.234:8080/animals/animal
    • Descrição: Retorna a lista de todos os animais cadastrados no sistema.

  8. Buscar Todas as Comidas

    • Método: GET
    • URL: 54.207.157.234:8080/animals/food
    • Descrição: Retorna a lista de todas as comidas cadastradas no sistema.

  9. Buscar Animais com Filtros

    • Método: GET
    • URL: 54.207.157.234:8080/animals/animal/filter?page=0&size=10&type=&kind=&animalSpecies=&age=&sex&author&habitat
    • Descrição: Busca animais com filtros específicos. Os parâmetros opcionais incluem:
    • page: Página da listagem (Exemplo: 0)
    • size: Quantidade de resultados por página (Exemplo: 10)
    • type: Tipo do animal
    • kind: Espécie
    • animalSpecies: Espécie do animal
    • age: Idade
    • sex: Sexo
    • author: Autor
    • habitat: Habitat do animal

  10. Buscar Animal por ID

    • Método: GET
    • URL: 54.207.157.234:8080/animals/animal/{animalId}
    • Descrição: Retorna as informações detalhadas de um animal específico, baseado no animalId.
    • Exemplo de animalId: c4c1ecd8-6644-4a54-9316-2b759bb16ccc

Deploy na AWS

O deploy do Animals API foi feito utilizando uma instância EC2 da AWS para rodar a aplicação e um banco de dados RDS para armazenar as informações. O processo incluiu as seguintes etapas:

  • Configuração da Instância EC2: A instância foi configurada para rodar o backend Java, utilizando Maven para build e execução. Foi criada uma regra no Security Group para permitir tráfego HTTP/HTTPS, possibilitando o acesso à API.
  • Configuração do Bucket S3: Um bucket S3 foi criado para armazenar as imagens dos animais. A API permite o upload das imagens via form-data, e o link público dessas imagens é armazenado no banco de dados RDS.
  • Configuração do RDS: O banco de dados RDS foi configurado para gerenciar as informações dos animais e das comidas. Ele está conectado à API para realizar as operações de CRUD e armazenamento dos links de imagem.

O deploy exigiu a criação de permissões adequadas para que a EC2 tivesse acesso ao bucket S3 e ao RDS via IAM Role, garantindo que as operações de upload e armazenamento de dados fossem realizadas de forma segura e eficiente.

Este projeto está sendo preparado para o frontend, que está sendo desenvolvido pelo meu amigo Guilherme Barbosa. Fique atento para futuras atualizações!

About

Backend em Java para gerenciamento de animais e comidas, com upload de imagens para AWS S3 e banco de dados PostgreSQL em AWS RDS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages