Loja / Aluno (painel)
Rotas usadas pelo painel do aluno. Autenticação: token de aluno
(Authorization: Bearer), obtido no login. Ele vale no lugar da X-API-Key.
Login do aluno
POST
/v1/store/auth/loginLogin = RM; senha inicial = o próprio RM (com troca forçada no 1º acesso).
- curl
- 200
curl -X POST "$BASE/store/auth/login" -H "Content-Type: application/json" \
-d '{"rm":"RM550001","password":"RM550001"}'
{ "token": "eyJ...", "student": { "rm": "RM550001", "name": "Aluno 1", "group": "Grupo Demo" },
"mustChangePassword": true }
GET
/v1/store/auth/me🔒 token de alunoPOST
/v1/store/auth/change-password🔒 token de alunoConfiguração da loja
GET
/v1/store/settings🔒 token de alunoPUT
/v1/store/settings🔒 token de alunoPUT /v1/store/settings
{
"storeName": "GamerStore",
"primaryColor": "#22c55e",
"supportEmail": "suporte@gamer.com",
"locale": "pt-BR", "currency": "BRL"
}
Chaves de API (Shopify-style)
GET
/v1/store/api-keys🔒 token de alunoPOST
/v1/store/api-keys🔒 token de alunoDELETE
/v1/store/api-keys/:id🔒 token de alunoPOST /v1/store/api-keys → a chave aparece só uma vez
{ "name": "App Android" }
A chave só aparece na criação
A resposta traz apiKey: "sk_live_..." uma vez. Depois, só o prefixo é visível.
Revogar (DELETE) invalida a chave imediatamente.
Membros do grupo
GET
/v1/store/members🔒 token de alunoPOST
/v1/store/members🔒 token de alunoDELETE
/v1/store/members/:rm🔒 token de alunoPOST /v1/store/members
{ "rm": "RM550004", "name": "Colega Novo" }
Regras
Um RM que já está em outro grupo é rejeitado (409). Não dá para remover a si mesmo
nem esvaziar o grupo. É essa lista que o professor usa na avaliação.
Admin (professor)
Fora do painel do aluno, o professor usa X-Admin-Token:
POST
/v1/admin/groups🔒 X-Admin-TokenGET
/v1/admin/activity🔒 X-Admin-TokenGET /admin/activity resume quantas chamadas cada grupo e cada RM fez — a visão-chave
de participação.