Этот проект представляет собой сервис, который позволяет создавать короткие URL-адреса для длинных ссылок. Он написан на языке программирования Go и использует файлы для хранения информации о ссылках.
- Склонируйте репозиторий в любую подходящую директорию на вашем компьютере.
- Запустить сервер с помощью команды
go run main.go
из директории cmd/shortener
При создании новой ссылки сервис генерирует уникальный идентификатор и сохраняет его в базе данных вместе с длинной ссылкой. При переходе по короткой ссылке сервер получает идентификатор из URL и использует его для поиска соответствующей длинной ссылки в базе данных.
-
Эндпоинт с методом POST и путём /. Сервер принимает в теле запроса строку URL как text/plain и возвращает ответ с кодом 201 и сокращённым URL как text/plain.
-
Эндпоинт с методом GET и путём /{id}, где id — идентификатор сокращённого URL (например, /EwHXdJfB). В случае успешной обработки запроса сервер возвращает ответ с кодом 307 и оригинальным URL в HTTP-заголовке Location.
-
Эндпоинт POST /api/shorten принимает в теле запроса JSON-объект {"url":"<some_url>"} и возвращает в ответ объект {"result":"<short_url>"}.
- Флаг -a отвечает за адрес запуска HTTP-сервера (значение может быть таким: localhost:8888).
- Флаг -b отвечает за базовый адрес результирующего сокращённого URL (значение: адрес сервера перед коротким URL, например http://localhost:8000/qsd54gFg)
- Флаг -f полное имя файла, куда сохраняются данные в формате JSON (по умолчанию /tmp/short-url-db.json
Имеется возможность конфигурировать сервис с помощью переменных окружения:
- SERVER_ADDRESS - Адрес запуска HTTP-сервера.
- BASE_URL - Базовый адрес результирующего сокращённого URL — с помощью переменной.
- FILE_STORAGE_PATH — полное имя файла, куда сохраняются данные в формате JSON (по умолчанию /tmp/short-url-db.json
Этот проект создается в рамках курса по языку программирования Go. Если у вас есть какие-либо вопросы или предложения по улучшению проекта, пожалуйста, свяжитесь со мной.