- Gerenciamento de Decks: criar, listar, atualizar, excluir e visualizar detalhes de decks de flashcards.
- Gerenciamento de Flashcards: criar flashcards, associá-los a decks, buscar aleatoriamente ou individualmente, atualizar e remover flashcards.
# Clone o repositório já trazendo o submódulo templates
git clone --recurse-submodules https://github.com/TechAbraao/flash-cards-rest-api.git
# Acesse o diretório do projeto
cd flash-cards-rest-api
# (Opcional) Se esqueceu do --recurse-submodules, inicialize o submódulo manualmente
git submodule update --init --recursive
# Crie o ambiente virtual
python3 -m venv .venv
# Ative o ambiente virtual (Linux ou Mac)
source .venv/bin/activate
# Ou, se estiver no Windows
# .venv\Scripts\activate
# Instale as dependências do projeto
pip install -r src/requirements.txt
# Acesse a pasta de código-fonte
cd src
# Rode a aplicação Flask
flask run
# Acesse a pasta do submódulo
cd src/app/templates
# Busque as últimas alterações do repositório de templates
git pull origin main # ou a branch correta
# Volte para o repositório principal
cd ../../../..
# Adicione e commite a atualização do submódulo
git add src/app/templates
git commit -m "Atualiza submódulo templates"
git push origin main
Método | URL | Descrição |
---|---|---|
GET | /api/decks |
Listar todos os decks |
POST | /api/decks |
Criar um novo deck |
GET | /api/decks/<id> |
Obter detalhes de um deck |
PUT | /api/decks/<id> |
Atualizar informações de um deck |
{
"title": "História - Revolução Francesa Atualizado",
"description": "Deck atualizado com mais flashcards sobre a Revolução Francesa.",
"tags": ["história", "revolução", "frança"]
}
Método | URL | Descrição |
---|---|---|
POST | /api/decks/<deck_id>/cards |
Adicionar card ao deck |
GET | /api/decks/<deck_id>/cards |
Buscar todos os cards de um deck |
GET | /api/decks/<deck_id>/cards/random |
Buscar card aleatório do deck |
GET | /api/cards/<card_id> |
Buscar card específico |
PUT | /api/cards/<card_id> |
Atualizar card específico |
DELETE | /api/cards/<card_id> |
Remover card |
{
"question": "Quando ocorreu a Revolução Francesa?",
"answer": "Em 1789.",
"tags": ["história", "datas", "revolução"]
}
Todas as respostas da API seguem o seguinte padrão:
- Sucesso
{
"success": true,
"message": "Mensagem descritiva da operação",
"data": { /* objeto ou lista retornada */ }
}
- Erro
{
"success": false,
"message": "Mensagem de erro",
"error": { /* objeto ou lista de erros */ }
}
Observações:
- O campo
error
contém o objeto de erro ou lista de erros.- O campo
message
descreve o resultado da operação ou o motivo do erro.