Esta API foi desenvolvida para a gestão acadêmica de alunos e disciplinas, utilizando Node.js, Express e Mongoose para interagir com um banco de dados MongoDB.
- Node.js
- MongoDB
Para iniciar o servidor, execute:
npm start
O servidor será iniciado na porta 3000 ou na porta especificada na variável de ambiente PORT
.
- URL:
/registrar
- Método:
POST
- Descrição: Registra um novo aluno.
- Parâmetros:
nome
(string): Nome do aluno.email
(string): Email do aluno.senha
(string): Senha do aluno.
- Exemplo de solicitação:
{ "nome": "João da Silva", "email": "joao@example.com", "senha": "senha123" }
- URL:
/autenticar
- Método:
POST
- Descrição: Autentica um aluno e retorna um token JWT.
- Parâmetros:
email
(string): Email do aluno.senha
(string): Senha do aluno.
- Exemplo de solicitação:
{ "email": "joao@example.com", "senha": "senha123" }
- Exemplo de resposta:
{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." }
- URL:
/matricular
- Método:
POST
- Descrição: Matricula um aluno em uma disciplina. Requer autenticação.
- Cabeçalho:
Authorization: Bearer <token>
- Parâmetros:
disciplinaId
(string): ID da disciplina.
- Exemplo de solicitação:
{ "disciplinaId": "60c72b2f9b1e8a3f88df8b2d" }
- URL:
/disciplina
- Método:
GET
- Descrição: Lista todas as disciplinas.
- Exemplo de resposta:
[ { "_id": "60c72b2f9b1e8a3f88df8b2d", "nome": "Matemática", "codigo": "MAT101", "professor": "Prof. Silva" }, { "_id": "60c72b3e9b1e8a3f88df8b2e", "nome": "História", "codigo": "HIS102", "professor": "Prof. Souza" } ]
- URL:
/disciplina
- Método:
POST
- Descrição: Cadastra uma nova disciplina.
- Parâmetros:
nome
(string): Nome da disciplina.codigo
(string): Código da disciplina.professor
(string): Nome do professor.
- Exemplo de solicitação:
{ "nome": "Física", "codigo": "FIS103", "professor": "Prof. Lima" }
- Campos:
nome
(string): Nome do aluno.email
(string): Email do aluno.senha
(string): Senha do aluno (hash).
- Campos:
nome
(string): Nome da disciplina.codigo
(string): Código da disciplina.professor
(string): Nome do professor.
- Campos:
alunoId
(ObjectId): Referência ao aluno (User).disciplinaId
(ObjectId): Referência à disciplina (Disciplina).
- express
- mongoose
- bcrypt
- jsonwebtoken