Atualizar COMOUSARAAPI.md
This commit is contained in:
244
COMOUSARAAPI.md
244
COMOUSARAAPI.md
@@ -25,32 +25,268 @@ Authorization: Bearer SEU_TOKEN_AQUI
|
||||
| `POST` | `/api/estudantes/cadastro` | Cria um novo estudante |
|
||||
| `POST` | `/api/estudantes/login` | Autentica e retorna o token JWT |
|
||||
|
||||
#### `POST /api/estudantes/cadastro`
|
||||
|
||||
**Body:**
|
||||
```json
|
||||
{
|
||||
"nome": "João Silva",
|
||||
"email": "joao@email.com",
|
||||
"senha": "minhasenha",
|
||||
"curso": "Ciência da Computação",
|
||||
"periodo": 3
|
||||
}
|
||||
```
|
||||
|
||||
> `senha` — mínimo 6 caracteres | `periodo` — mínimo 1
|
||||
|
||||
**Resposta (`201 Created`):**
|
||||
```json
|
||||
{
|
||||
"data": {
|
||||
"id": "abc123",
|
||||
"nome": "João Silva",
|
||||
"email": "joao@email.com",
|
||||
"curso": "Ciência da Computação",
|
||||
"periodo": 3
|
||||
},
|
||||
"message": "Sucesso",
|
||||
"timestamp": "2026-03-15T10:00:00"
|
||||
}
|
||||
```
|
||||
|
||||
#### `POST /api/estudantes/login`
|
||||
|
||||
**Body:**
|
||||
```json
|
||||
{
|
||||
"email": "joao@email.com",
|
||||
"senha": "minhasenha"
|
||||
}
|
||||
```
|
||||
|
||||
**Resposta (`200 OK`):**
|
||||
```json
|
||||
{
|
||||
"data": {
|
||||
"token": "eyJhbGciOiJIUzI1NiJ9...",
|
||||
"estudante": {
|
||||
"id": "abc123",
|
||||
"nome": "João Silva",
|
||||
"email": "joao@email.com",
|
||||
"curso": "Ciência da Computação",
|
||||
"periodo": 3
|
||||
}
|
||||
},
|
||||
"message": "Sucesso",
|
||||
"timestamp": "2026-03-15T10:00:00"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Tarefas
|
||||
|
||||
| Método | Rota | Descrição |
|
||||
|--------|------|-----------|
|
||||
| `POST` | `/api/tarefas` | Cria uma nova tarefa |
|
||||
| `GET` | `/api/tarefas/estudante/{id}` | Lista todas as tarefas de um estudante |
|
||||
| `GET` | `/api/tarefas/estudante/{id}/pendentes` | Lista apenas as tarefas não concluídas |
|
||||
| `GET` | `/api/tarefas/estudante/{estudanteId}` | Lista todas as tarefas de um estudante |
|
||||
| `GET` | `/api/tarefas/estudante/{estudanteId}/pendentes` | Lista apenas as tarefas não concluídas |
|
||||
| `GET` | `/api/tarefas/estudante/{estudanteId}/data?data=` | Lista tarefas de uma data específica |
|
||||
| `GET` | `/api/tarefas/estudante/{estudanteId}/periodo?inicio=&fim=` | Lista tarefas em um intervalo de datas |
|
||||
| `GET` | `/api/tarefas/{id}` | Retorna os detalhes de uma tarefa específica |
|
||||
| `PUT` | `/api/tarefas/{id}` | Atualiza os dados de uma tarefa existente |
|
||||
| `PATCH` | `/api/tarefas/{id}/concluir` | Marca uma tarefa como concluída |
|
||||
| `DELETE` | `/api/tarefas/{id}` | Remove uma tarefa |
|
||||
|
||||
#### `POST /api/tarefas` · `PUT /api/tarefas/{id}`
|
||||
|
||||
**Body:**
|
||||
```json
|
||||
{
|
||||
"titulo": "Trabalho de Cálculo",
|
||||
"descricao": "Resolver lista de integrais",
|
||||
"prioridade": "ALTA",
|
||||
"status": "PENDENTE",
|
||||
"dataEntrega": "2026-04-10",
|
||||
"disciplinaId": "disc456",
|
||||
"estudanteId": "abc123"
|
||||
}
|
||||
```
|
||||
|
||||
> `prioridade` — `BAIXA` | `MEDIA` | `ALTA` | `URGENTE`
|
||||
> `status` — `PENDENTE` | `EM_ANDAMENTO` | `CONCLUIDA` | `ATRASADA`
|
||||
> `dataEntrega` — formato `YYYY-MM-DD`, deve ser uma data futura
|
||||
|
||||
**Resposta (`201 Created` / `200 OK`):**
|
||||
```json
|
||||
{
|
||||
"data": {
|
||||
"id": "trf789",
|
||||
"titulo": "Trabalho de Cálculo",
|
||||
"descricao": "Resolver lista de integrais",
|
||||
"prioridade": "ALTA",
|
||||
"status": "PENDENTE",
|
||||
"dataEntrega": "2026-04-10",
|
||||
"disciplinaId": "disc456",
|
||||
"estudanteId": "abc123"
|
||||
},
|
||||
"message": "Sucesso",
|
||||
"timestamp": "2026-03-15T10:00:00"
|
||||
}
|
||||
```
|
||||
|
||||
#### `GET /api/tarefas/estudante/{estudanteId}/data`
|
||||
|
||||
**Query params:**
|
||||
|
||||
| Parâmetro | Tipo | Exemplo |
|
||||
|-----------|------|---------|
|
||||
| `data` | `LocalDate` (ISO) | `2026-04-10` |
|
||||
|
||||
#### `GET /api/tarefas/estudante/{estudanteId}/periodo`
|
||||
|
||||
**Query params:**
|
||||
|
||||
| Parâmetro | Tipo | Exemplo |
|
||||
|-----------|------|---------|
|
||||
| `inicio` | `LocalDate` (ISO) | `2026-04-01` |
|
||||
| `fim` | `LocalDate` (ISO) | `2026-04-30` |
|
||||
|
||||
---
|
||||
|
||||
### Disciplinas
|
||||
|
||||
| Método | Rota | Descrição |
|
||||
|--------|------|-----------|
|
||||
| `POST` | `/api/disciplinas` | Cria uma nova disciplina |
|
||||
| `GET` | `/api/disciplinas/estudante/{estudanteId}` | Lista todas as disciplinas de um estudante |
|
||||
| `GET` | `/api/disciplinas/{id}?estudanteId=` | Retorna os detalhes de uma disciplina específica |
|
||||
| `PUT` | `/api/disciplinas/{id}` | Atualiza uma disciplina existente |
|
||||
| `DELETE` | `/api/disciplinas/{id}?estudanteId=` | Remove uma disciplina |
|
||||
|
||||
#### `POST /api/disciplinas` · `PUT /api/disciplinas/{id}`
|
||||
|
||||
**Body:**
|
||||
```json
|
||||
{
|
||||
"nome": "Cálculo II",
|
||||
"professor": "Prof. Rodrigues",
|
||||
"sala": "B-204",
|
||||
"cor": "#FF5733",
|
||||
"estudanteId": "abc123"
|
||||
}
|
||||
```
|
||||
|
||||
> `nome` e `estudanteId` são obrigatórios. Os demais campos são opcionais.
|
||||
|
||||
**Resposta (`201 Created` / `200 OK`):**
|
||||
```json
|
||||
{
|
||||
"data": {
|
||||
"id": "disc456",
|
||||
"estudanteId": "abc123",
|
||||
"nome": "Cálculo II",
|
||||
"professor": "Prof. Rodrigues",
|
||||
"sala": "B-204",
|
||||
"cor": "#FF5733"
|
||||
},
|
||||
"message": "Sucesso",
|
||||
"timestamp": "2026-03-15T10:00:00"
|
||||
}
|
||||
```
|
||||
|
||||
#### `GET /api/disciplinas/{id}` · `DELETE /api/disciplinas/{id}`
|
||||
|
||||
**Query params:**
|
||||
|
||||
| Parâmetro | Tipo | Exemplo |
|
||||
|-----------|------|---------|
|
||||
| `estudanteId` | `String` | `abc123` |
|
||||
|
||||
---
|
||||
|
||||
### Eventos
|
||||
|
||||
| Método | Rota | Descrição |
|
||||
|--------|------|-----------|
|
||||
| `POST` | `/api/eventos` | Cria um novo evento |
|
||||
| `GET` | `/api/eventos/estudante/{estudanteId}` | Lista todos os eventos de um estudante |
|
||||
| `GET` | `/api/eventos/estudante/{estudanteId}/periodo?inicio=&fim=` | Lista eventos em um intervalo de data/hora |
|
||||
| `GET` | `/api/eventos/estudante/{estudanteId}/proximos` | Lista os próximos eventos do estudante |
|
||||
| `GET` | `/api/eventos/{id}?estudanteId=` | Retorna os detalhes de um evento específico |
|
||||
| `PUT` | `/api/eventos/{id}` | Atualiza um evento existente |
|
||||
| `DELETE` | `/api/eventos/{id}?estudanteId=` | Remove um evento |
|
||||
|
||||
#### `POST /api/eventos` · `PUT /api/eventos/{id}`
|
||||
|
||||
**Body:**
|
||||
```json
|
||||
{
|
||||
"titulo": "Prova de Cálculo II",
|
||||
"descricao": "Conteúdo: integrais e séries",
|
||||
"tipo": "PROVA",
|
||||
"local": "Sala B-204",
|
||||
"disciplinaId": "disc456",
|
||||
"dataHora": "2026-04-15T14:00:00",
|
||||
"estudanteId": "abc123"
|
||||
}
|
||||
```
|
||||
|
||||
> `tipo` — `AULA` | `PROVA` | `TRABALHO` | `ESTUDO` | `EXAME` | `OUTRO`
|
||||
> `dataHora` — formato ISO 8601: `YYYY-MM-DDTHH:MM:SS`
|
||||
|
||||
**Resposta (`201 Created` / `200 OK`):**
|
||||
```json
|
||||
{
|
||||
"data": {
|
||||
"id": "evt321",
|
||||
"estudanteId": "abc123",
|
||||
"titulo": "Prova de Cálculo II",
|
||||
"descricao": "Conteúdo: integrais e séries",
|
||||
"tipo": "PROVA",
|
||||
"local": "Sala B-204",
|
||||
"disciplinaId": "disc456",
|
||||
"dataHora": "2026-04-15T14:00:00"
|
||||
},
|
||||
"message": "Sucesso",
|
||||
"timestamp": "2026-03-15T10:00:00"
|
||||
}
|
||||
```
|
||||
|
||||
#### `GET /api/eventos/estudante/{estudanteId}/periodo`
|
||||
|
||||
**Query params:**
|
||||
|
||||
| Parâmetro | Tipo | Exemplo |
|
||||
|-----------|------|---------|
|
||||
| `inicio` | `LocalDateTime` (ISO) | `2026-04-01T00:00:00` |
|
||||
| `fim` | `LocalDateTime` (ISO) | `2026-04-30T23:59:59` |
|
||||
|
||||
#### `GET /api/eventos/{id}` · `DELETE /api/eventos/{id}`
|
||||
|
||||
**Query params:**
|
||||
|
||||
| Parâmetro | Tipo | Exemplo |
|
||||
|-----------|------|---------|
|
||||
| `estudanteId` | `String` | `abc123` |
|
||||
|
||||
---
|
||||
|
||||
## Formato de Resposta
|
||||
|
||||
Todas as respostas da API seguem a estrutura abaixo:
|
||||
Todas as respostas seguem a estrutura:
|
||||
|
||||
```json
|
||||
{
|
||||
"data": { ... },
|
||||
"message": "Sucesso",
|
||||
"timestamp": "2026-03-01T19:00:00"
|
||||
"timestamp": "2026-03-15T10:00:00"
|
||||
}
|
||||
```
|
||||
|
||||
Em caso de erro, o campo `data` pode ser `null` e `message` conterá a descrição do problema.
|
||||
|
||||
---
|
||||
|
||||
## Execução
|
||||
|
||||
Reference in New Issue
Block a user