Этот проект представляет собой сервис для сокращения длинных URL-адресов, позволяя преобразовывать их в короткие ссылки для удобного использования и обмена.
- Сокращение URL: преобразование длинных ссылок в короткие.
- Перенаправление: переход по короткой ссылке ведет на исходный длинный URL.
- Статистика: отслеживание количества переходов по каждой короткой ссылке.
- Удаление ссылок: возможность удаления ранее созданных коротких ссылок.
- Обновление ссылок: изменение целевого URL для существующей короткой ссылки.
- Получение списка ссылок: возможность получить список всех созданных коротких ссылок.
-
Клонирование репозитория:
git clone https://github.com/dsemenov12/shorturl.git
-
Инициализация модуля:
go mod init github.com/dsemenov12/shorturl
-
Установка зависимостей:
go mod tidy
-
Запуск сервиса:
go run cmd/shorturl/main.go
По умолчанию сервис будет доступен по адресу
http://localhost:8080.
POST /api/shorten
{
"url": "https://example.com/long-url"
}{
"short_url": "http://localhost:8080/abcd123"
}GET /{short_url}
- Перенаправляет пользователя на исходный длинный URL.
GET /api/stats/{short_url}
{
"original_url": "https://example.com/long-url",
"clicks": 25
}DELETE /api/delete/{short_url}
{
"message": "Short URL deleted successfully"
}PUT /api/update/{short_url}
{
"new_url": "https://new-example.com/updated-url"
}{
"message": "Short URL updated successfully"
}GET /api/links
[
{
"short_url": "http://localhost:8080/abcd123",
"original_url": "https://example.com/long-url",
"clicks": 25
},
{
"short_url": "http://localhost:8080/xyz789",
"original_url": "https://another-example.com",
"clicks": 10
}
]Для запуска тестов выполните:
go test ./...