/spring-api

Implementação de uma REST API utilizando o framework Spring.

Primary LanguageJavaMIT LicenseMIT

Desafio API

NPM

Descrição

Implementação de uma REST API para um sistema de clínica veterinária utilizando o framework Spring. Segue as principais funcionalidades da aplicação:

  • CRUD de todas as classes;
  • Validações nos atributos das classes;
  • Integração com banco de dados MySQL;
  • Segurança no acesso da aplicação;
  • Documentação de endpoints pelo Swagger 2.0;
  • Consumo de API externa.

Configuração

O projeto foi desenvolvido com as seguintes tecnologias:

  • Java 17
  • Spring Boot 2.7.0
  • Maven 4.0.0
  • JUnit 5
  • Eclipse IDE for Enterprise Java and Web Developers 4.23.0

Diagrama de classes

UML - 26 07

Instalação e execução

Para deixar o projeto pronto para a execução, os seguintes passos devem ser seguidos:

  • Baixar o projeto pelo GitLab e descompatá-lo em sua máquina ou cloná-lo;
  • Importar o projeto para a sua IDE Java;
  • Atualizar as dependências contidas no pom.xml;
  • Possuir o banco de dados MySQL instalado em sua máquina;
  • Inserir o seu usuário e senha do banco de dados pelo arquivo application.properties nos seguintes campos:
    • spring.datasource.username=root
    • spring.datasource.password=root
  • Ter acesso a internet;
  • Após esses passos, o projeto pode ser executado;
  • Depois da execução, os endpoints podem ser acessados através do Swagger.

Endpoints

Autenticação

Método URL Perfil(is) autorizado(s)
POST http://localhost:8080/v1/auth Público

Cliente

Método URL Perfil(is) autorizado(s)
POST http://localhost:8080/v1/clientes ADMIN
GET http://localhost:8080/v1/clientes ADMIN, USER
GET http://localhost:8080/v1/clientes/{id} ADMIN, USER
PUT http://localhost:8080/v1/clientes/{id} ADMIN
DELETE http://localhost:8080/v1/clientes/{id} ADMIN

Cachorro

Método URL Perfil(is) autorizado(s)
POST http://localhost:8080/v1/cachorros ADMIN
GET http://localhost:8080/v1/cachorros ADMIN, USER
GET http://localhost:8080/v1/cachorros/{id} ADMIN, USER
PUT http://localhost:8080/v1/cachorros/{id} ADMIN
DELETE http://localhost:8080/v1/cachorros/{id} ADMIN

Médico

Método URL Perfil(is) autorizado(s)
POST http://localhost:8080/v1/medicos ADMIN
GET http://localhost:8080/v1/medicos ADMIN, USER
GET http://localhost:8080/v1/medicos/{id} ADMIN, USER
PUT http://localhost:8080/v1/medicos/{id} ADMIN
DELETE http://localhost:8080/v1/medicos/{id} ADMIN

Raça

Método URL Perfil(is) autorizado(s)
POST http://localhost:8080/v1/racas ADMIN
GET http://localhost:8080/v1/racas ADMIN, USER
GET http://localhost:8080/v1/racas ADMIN, USER
GET http://localhost:8080/v1/racas/dog-api ADMIN, USER
GET http://localhost:8080/v1/racas/dog-api/{nomeRaca} ADMIN, USER
GET http://localhost:8080/v1/racas/dog-api/imagens ADMIN, USER
PUT http://localhost:8080/v1/racas/{id} ADMIN
DELETE http://localhost:8080/v1/racas/{id} ADMIN

Atendimento

Método URL Perfil(is) autorizado(s)
POST http://localhost:8080/v1/atendimentos ADMIN
GET http://localhost:8080/v1/atendimentos ADMIN, USER
GET http://localhost:8080/v1/atendimentos/{id} ADMIN, USER

A documentação completa dos endpoints está disponível através do Swagger.

Testes unitários

Testes unitários foram implementados com o JUnit 5:

  • Para executar todos os testes, basta clicar com o botão direito no seu projeto, posicionar o mouse na opção Run As e clicar em JUnit Test;
  • Após a execução, o resultado dos testes aparecerá na guia do JUnit em sua IDE.

Suporte

Se você possui todos os requisitos, seguiu todas as instruções de como executar a aplicação e mesmo assim está com problemas, pode mandar um email por aqui constatando o erro.

Autor

Brener Augusto de Oliveira