Uma API RESTful para gerenciar e recuperar citações de Sasuke Uchiha, o melhor personagem do anime Naruto!
- 🔄 Obter citações aleatórias do Sasuke
- 📝 Visualizar todas as citações disponíveis
- 🔍 Pesquisar citações por palavra-chave
- 🏷️ Filtrar citações por categoria (Genin, Shippuden, etc.)
- 📚 Informações de contexto e fonte para cada citação
- ➕ Adicionar novas citações (com autenticação)
- 🗑️ Excluir citações (com autenticação)
- ⭐ Sistema de citações favoritas
- 🌙 Modo escuro/claro com tema Uchiha
- 🔒 Rotas protegidas com autenticação por token
# Clone o repositório
git clone https://github.com/Augusto240/sasukeAPI.git
cd sasukeAPI
# Construa e inicie o contêiner
docker-compose up --build# Clone o repositório
git clone https://github.com/Augusto240/sasukeAPI.git
cd sasukeAPI
# Crie um ambiente virtual
python -m venv venv
source venv/bin/activate # No Windows: venv\Scripts\activate
# Instale as dependências
pip install -r requirements.txt
# Execute a aplicação
python app.py| Método | Endpoint | Descrição | Autenticação |
|---|---|---|---|
| GET | /sasuke/quote | Obter uma citação aleatória | Não |
| GET | /sasuke/quotes | Obter todas as citações | Não |
| GET | /sasuke/quote/:id | Obter uma citação específica por ID | Não |
| GET | /sasuke/search?q=termo | Pesquisar citações contendo o termo | Não |
| GET | /sasuke/quotes/category/:cat | Filtrar citações por categoria | Não |
| GET | /sasuke/categories | Listar todas as categorias disponíveis | Não |
| GET | /sasuke/favorites | Listar todas as citações favoritas | Não |
| POST | /sasuke/favorites/:id | Adicionar uma citação aos favoritos | Sim |
| DELETE | /sasuke/favorites/:id | Remover uma citação dos favoritos | Sim |
| POST | /sasuke/quotes | Adicionar uma nova citação | Sim |
| PUT | /sasuke/quote/:id | Atualizar uma citação existente | Sim |
| DELETE | /sasuke/quote/:id | Excluir uma citação | Sim |
curl -X GET http://localhost:5000/sasuke/quoteResposta:
{
"id": 3,
"quote": "Eu tenho um irmão... que eu preciso matar!",
"context": "Sobre sua ambição de vingança",
"source": "Episódio 3 (Naruto Clássico)",
"category": "Genin"
}curl -X GET http://localhost:5000/sasuke/quotescurl -X GET http://localhost:5000/sasuke/search?q=vingançacurl -X GET http://localhost:5000/sasuke/quotes/category/Shippudencurl -X POST http://localhost:5000/sasuke/quotes \
-H "Authorization: Bearer sasuke_api_token" \
-H "Content-Type: application/json" \
-d '{
"quote": "Sua nova citação do Sasuke",
"context": "Contexto da citação",
"source": "Episódio X",
"category": "Shippuden"
}'Endpoints protegidos requerem um token Bearer no cabeçalho Authorization:
Authorization: Bearer sasuke_api_token
O token da API pode ser definido usando a variável de ambiente API_TOKEN.
A API inclui uma interface web simples e elegante que permite:
- Visualizar citações aleatórias do Sasuke
- Filtrar citações por categoria
- Alternar entre modo claro e escuro
- Ver a documentação da API
Acesse a interface web navegando para http://localhost:5000/ após iniciar o servidor.
A configuração é gerenciada por variáveis de ambiente:
| Variável | Descrição | Padrão |
|---|---|---|
| DEBUG | Ativar modo de depuração | True |
| SECRET_KEY | Chave secreta do Flask | sasuke_uchiha_secret |
| API_TOKEN | Token para endpoints protegidos | sasuke_api_token |
| PORT | Porta em que o servidor executa | 5000 |
- Faça um fork do repositório
- Crie um branch para sua funcionalidade:
git checkout -b minha-funcionalidade - Faça commit das suas alterações:
git commit -m 'Adiciona nova funcionalidade' - Envie para o branch:
git push origin minha-funcionalidade - Abra um Pull Request
