Projeto para estudos sobre como desenvolver uma API seguindo o curso da Alura de Spring Boot 3.
- Trello com o objetivo inicial do projeto: Trello Board
- Figma: Figma Design
O projeto está estruturado da seguinte forma:
- HelloController: Responsável por responder às requisições GET para o endpoint
/hello
com a mensagem "Hello, World!".
Utilização do padrão DTO (Data Transfer Object) para encapsular dados e melhorar a transferência entre camadas da aplicação.
- Descrição: Recupera informações dos recursos.
- Exemplo:
-
Endpoint:
/medicos
/paciente
-
Método:
GET
-
Descrição: Retorna uma lista de todos os médicos ou pacientes cadastrados.
-
Exemplo de Resposta:
[ { "nome": "Dra. Ana Duda", "email": "ana.duda@example.com", "crm": "152888", "especialidade": "ORTOPEDIA" }, { "nome": "Dr. João Silva", "email": "joao.silva@example.com", "crm": "123456", "especialidade": "CARDIOLOGIA" } ]
-
- Cadastrar Médico: Adiciona um novo médico ou paciente ao sistema.
- Endpoint:
/medicos
/paciente
- Exemplo de Requisição:
{ "nome": "Dra. Ana Duda", "email": "ana.duda@example.com", "crm": "152888", "telefone": "1199990000", "especialidade": "ORTOPEDIA", "endereco": { "logradouro": "New Orleans", "bairro": "Jardins", "cep": "87654321", "cidade": "Rio de Janeiro", "uf": "RJ" } }
- Endpoint:
- Descrição: Atualiza informações de recursos existentes.
- Exemplo:
- Endpoint:
/medicos/{id}
/paciente/{id}
- Método:
PUT
- Descrição: Atualiza as informações de um médico ou paciente existente.
- Corpo da requisição:
{ "nome": "Dr. João Silva", "email": "joao.silva@example.com", "telefone": "1199998888" }
- Endpoint:
- Descrição: Remove recursos de forma lógica, não física.
- Exemplo:
- Endpoint:
/medicos/{id}
- Método:
DELETE
- Descrição: Marca um médico como removido, mas não exclui fisicamente do banco de dados. A remoção lógica permite manter um histórico e reverter a exclusão se necessário.
- Endpoint:
Para este projeto, são necessários:
- JDK 17
- Maven
- MySQL
- Descrição: Fornece a infraestrutura para construir aplicações web, incluindo RESTful services.
- Grupo e Artefato:
org.springframework.boot:spring-boot-starter-web:3.3.1
- Descrição: Oferece ferramentas de desenvolvimento como reinicialização automática, configuração simplificada, entre outras.
- Grupo e Artefato:
org.springframework.boot:spring-boot-devtools:3.3.1
- Descrição: Biblioteca para reduzir a verbosidade do código Java, gerando automaticamente getters, setters, construtores, etc.
- Grupo e Artefato:
org.projectlombok:lombok:1.18.32
- Descrição: Inclui bibliotecas para testar aplicações Spring Boot, como JUnit, Hamcrest e Mockito.
- Grupo e Artefato:
org.springframework.boot:spring-boot-starter-test:3.3.1
- Descrição: Conector para o banco de dados MySQL.
- Grupo e Artefato:
mysql:mysql-connector-java:8.0.32
- Instale o MySQL: Se você ainda não o fez, baixe e instale o MySQL em seu ambiente de desenvolvimento.
- Crie um banco de dados: Crie um banco de dados para a aplicação. Por exemplo:
CREATE DATABASE vollmed;
- Configure as credenciais no
application.properties
:spring.datasource.url=jdbc:mysql://localhost:3306/vollmed spring.datasource.username=seu_usuario spring.datasource.password=sua_senha spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
Para executar o projeto localmente:
- Certifique-se de ter o JDK 17, Maven e MySQL instalados.
- Clone este repositório.
- Navegue até o diretório do projeto.
- Configure as credenciais do MySQL no arquivo
application.properties
. - Execute o comando
mvn spring-boot:run
para iniciar a aplicação. - Acesse
http://localhost:8080/hello
no seu navegador para ver a mensagem "Hello, World!".
Este projeto é distribuído sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.