Apostila — Microserviços Acadêmicos (VS Code + Terminal) — v2

Agora com o serviço acadêmico na porta 8010 para evitar conflitos.

Portas

acadêmico → http://127.0.0.1:8010
salas     → http://127.0.0.1:8001
turmas    → http://127.0.0.1:8002
notas     → http://127.0.0.1:8003

Subir os serviços

python -m venv .venv
# Windows: .venv\Scripts\activate
# Linux/Mac: source .venv/bin/activate

pip install -r requirements.txt
python run_all.py
Se a 8001–8003 estiverem ocupadas, altere as portas em run_all.py (mas a 8010 já evita conflito comum da 8000 no Windows).

Testes (curl)

curl 127.0.0.1:8010/health
curl 127.0.0.1:8001/health
curl 127.0.0.1:8002/health
curl 127.0.0.1:8003/health

curl -X POST 127.0.0.1:8002/turmas -H "Content-Type: application/json" -d "{"turma_id":"ADS101","professor":"simone"}"
curl -X POST 127.0.0.1:8002/matriculas -H "Content-Type: application/json" -d "{"turma_id":"ADS101","aluno_id":"A1"}"

curl -X POST 127.0.0.1:8010/agendar-aula -H "Content-Type: application/json" -d "{"turma_id":"ADS101","sala":"LAB-01","inicio":"2025-11-05T19:00","fim":"2025-11-05T21:00"}"
curl -X POST 127.0.0.1:8010/lancar-nota -H "Content-Type: application/json" -d "{"turma_id":"ADS101","aluno_id":"A1","avaliacao":"P1","nota":8.5}"
curl 127.0.0.1:8003/nota/ADS101/A1

REST Client (VS Code)

Use o arquivo requests.http (as URLs já estão com a porta 8010 para o serviço acadêmico).

Menu CLI

Rode em um segundo terminal:

python menu_cli_academico.py

O menu já aponta para http://127.0.0.1:8010 no serviço acadêmico.