API para gestão de cursos, criada para o desafio 2.
É necessário ter a JDK 17+ em sua máquina para rodar a API. Postman para testar os endpoints.
- Java 17 - Linguagem de programação usada para criar a API.
- Springboot - Framework usado em conjunto com o Java.
- Maven - Gerenciador de Dependências.
- H2 database - Banco de dados em memória.
- Matheus Laurentino - desenvolvedor backend - desenvolvedor.
- Helon Xavier - desenvolvedor backend - desenvolvedor.
- Clone este repositório:
git clone https://github.com/Helon21/ByteStorm-Desafio2.git
- Navegue até o diretório do projeto:
cd ByteStorm-Desafio2
-
Abra-o no IntelliJ. No menu "Project Structure", certifique-se de selecionar o SDK e o nível de linguagem Java 17.
-
Instale as dependências usando o Maven.
-
Após a instalação, inicie o servidor. Ele estará disponível em:
http://localhost:8080/
-
Se você possui o Postman instalado, importe o arquivo "API-Cursos.postman_collection.json" que contém todas as rotas da API.
-
Acesse a documentação do Swagger através da seguinte URL:
http://localhost:8080/docs-curso.html
- Cadastrar curso;
- Inabilitar curso;
- Alterar professor de um curso já cadastrado;
ENGENHARIA_SOFTWARE, FISICA, MEDICINA
POST /api/v1/cursos/cadastrar
{
"nome": "Teoria da Computação",
"quantidadeHoras": 10,
"professor": "Girafales",
"areaConhecimento": "ENGENHARIA_SOFTWARE",
"ativo": true (opcional, pois já é definido como true automáticamente ao criar um curso)
}
GET /api/v1/cursos/buscar-curso-id/{id}
retorno:
{
"nome": "Teoria da Computação",
"quantidadeHoras": 10,
"professor": "Girafales",
"areaConhecimento": "ENGENHARIA_SOFTWARE",
"ativo": true
}
GET /api/v1/cursos/buscar-cursos
retorno:
{
"nome": "Teoria da Computação",
"quantidadeHoras": 10,
"professor": "Girafales",
"areaConhecimento": "ENGENHARIA_SOFTWARE",
"ativo": true
}
PATCH /api/v1/cursos/alterar-professor/{id}
{
"professor":"Seu Madruga"
}
retorno:
{
"nome": "Teoria da Computação",
"quantidadeHoras": 10,
"professor": "Seu Madruga",
"areaConhecimento": "ENGENHARIA_SOFTWARE",
"ativo": true
}
PATCH /api/v1/inabilitar-curso/{id}
retorno:
{
"nome": "Teoria da Computação",
"quantidadeHoras": 10,
"professor": "Girafales",
"areaConhecimento": "ENGENHARIA_SOFTWARE",
"ativo": false
}
A API de gestão de cursos, tem como finalidade, passar os parâmetros dos cursos para o microserviço de Alunos. Essa abordagem foi adotada para manter a separação de preocupações e garantir que cada serviço seja responsável apenas por suas operações específicas, evitando assim a duplicação de dados e mantendo a integridade e consistência do sistema como um todo.
Endpoints extras foram adicionados na API de Cursos para facilitar a busca de um curso quando requisitado através da API de alunos, como o buscar curso por Id.
foram implementados testes de unidade, em todos os métodos da camada de serviço: buscarTodosCursos, buscarCursoPorId, cadastrarCurso, alterarProfessor, inabilitarCurso.
Para acessar os testes, navegue até a pasta:
src/test/java/com/bytestorm/cursos