Bem-vindo ao repositório da API REST da Voll.Med, uma clínica fictícia dedicada à gestão de médicos, pacientes, usuários e consultas. Esta API foi desenvolvida com a ajuda da formação Java e Spring da Alura, utilizando Java 17, Spring 3.1.5, Maven 4.0.0, MySQL 8.0.35, além das tecnologias Spring Boot, JWT, Lombok, Flyway, Auth0, SpringDoc (Swagger), Spring Security, JUnit com Spring.
Antes de começar, certifique-se de ter instalado em sua máquina:
- Java 17
- Maven 4.0.0
- MySQL 8.0.35
- Docker (opcional para implantar o banco de dados)
A aplicação utiliza o Flyway para gerenciar as migrações do banco de dados. Certifique-se de configurar as propriedades do banco de dados no arquivo application.properties
e execute as migrações com o seguinte comando:
mvn flyway:migrate
A autenticação é feita por meio do Auth0. Configure as credenciais no arquivo application.properties
. Certifique-se de ter as permissões adequadas configuradas no Auth0 para os escopos necessários.
A aplicação utiliza JWT para autenticação e autorização. As configurações do JWT estão no arquivo application.properties
.
Execute a aplicação usando o seguinte comando:
mvn spring-boot:run
A API estará disponível em http://localhost:8080
.
A documentação da API pode ser acessada em http://localhost:8080/swagger-ui.html
. Utilizamos o SpringDoc (Swagger) para gerar automaticamente a documentação.
- Método: POST
Descrição: Endpoint para autenticação de usuários. Retorna um token JWT válido.
- Método: GET
Descrição: Lista todos os médicos cadastrados.
-
Método: POST Descrição: Adiciona um novo médico.
-
Método: GET
/{id}
Descrição: Detalha as informações de um médico específico.
- Método: DELETE
/{id}
Descrição: Desativa um médico.
- Método: POST
Descrição: Marca uma nova consulta.
- Método: GET
Descrição: Lista todos os pacientes cadastrados.
- Método: POST
Descrição: Adiciona um novo paciente.
- Método: GET
/{id}
Descrição: Detalha as informações de um paciente específico.
- Método: DELETE
/{id}
Descrição: Desativa um paciente.
Sinta-se à vontade para contribuir para o desenvolvimento deste projeto. Abra uma issue para discutir novos recursos ou correções.
Este projeto foi desenvolvido com o apoio da formação Java e Spring da Alura.