Este projeto é uma API de encurtamento de URLs desenvolvida com Django REST Framework. Ele permite que os usuários enviem uma URL longa e obtenham uma versão encurtada, além de redirecionar os acessos para a URL original e contar o número de acessos.
- Python 3.13
- Django 3.13
- Django REST Framework
- SQLite (padrão, mas pode ser alterado para PostgreSQL ou MySQL)
git clone https://github.com/gabrielmrts/python-django-url-shortener.git
cd python-django-url-shortener
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
Endpoint: POST /api/urls/
Corpo da Requisição (JSON):
{
"original_url": "https://www.exemplo.com"
}
Resposta de Sucesso (JSON):
{
"short_code": "abc123",
"original_url": "https://www.exemplo.com",
"created_at": "2025-02-25T12:00:00Z",
"access_count": 0
}
Endpoint: GET /api/urls/{short_code}/
Exemplo:
GET http://127.0.0.1:8000/api/urls/abc123/
Resposta de Sucesso:
{
"redirect_to": "https://www.exemplo.com"
}
Erro se o código não existir:
{
"error": "URL not found."
}
shortener/
│── shortener/
│ ├── migrations/
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
│ ├── serializers.py
│ ├── services.py
│ ├── tests.py
│ ├── urls.py
│ ├── views.py
│── app/
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
│── manage.py
│── README.md
│── requirements.txt
- Adicionar suporte a usuários e autenticação
- Criar um painel de administração para visualizar estatÃsticas
- Implementar tempo de expiração para links encurtados
- Suporte para customização de códigos curtos
Este projeto está licenciado sob a MIT License.