Skip to content

This is my training project on URL shortening on Yandex Practicum

Notifications You must be signed in to change notification settings

DenisKhanov/Shortener-URL

Repository files navigation

RU

Сокращатель ссылок - Shortener URL

  • Сокращатель ссылок - это проект, разработанный мною как часть моей учебной программы Яндекс Практикума. Этот сервис позволяет пользователям сокращать длинные URL-адреса до более удобного формата, облегчая их использование и распространение.

Технологии:

Go  REST API  GIN  gRPC  PostgreSQL  Docker  GitHUB 

Для взаимодействия с сервисом предоставляется HTTP API.

Структура базы данных:

schema.png

Основные Функции

  • Сокращение URL: Пользователи могут преобразовывать длинные URL в короткие ссылки, которые легче обменивать и использовать.
  • Перенаправление по коротким ссылкам: Каждая сокращенная ссылка перенаправляет пользователя на оригинальный URL.
  • Хранение и Управление Ссылками: Сервис предоставляет интерфейс для управления сокращенными ссылками, включая возможность отметить ссылку как удаленную.
  • Поддержка Асинхронных Задач: Сервис поддерживает асинхронное удаление ссылок и способен обрабатывать запросы на удаление в фоновом режиме.

Начало Работы
Чтобы начать использовать сервис, выполните следующие шаги:

Клонирование репозитория: Склонируйте репозиторий проекта на свой локальный компьютер. Настройка базы данных: Настройте и запустите локальный экземпляр PostgreSQL (Напремер подняв образ в Docker) Запуск приложения: Запустите сервис сокращения ссылок на вашем компьютере используя следующие настройки.

Запуск возможен с использованием cli флагов и env переменных в следующем приоритете (env||cli flags||JSON config)

  • CONFIG ():Путь к конфигурационному JSON файлу: По умолчанию — пусто.
  • SERVER_ADDRESS (-a):Адрес HTTP/HTTPS сервера: По умолчанию — localhost:8080.
  • LOG_LEVEL (-l):Уровень логирования: По умолчанию установлен на info.
  • BASE_URL (-b): URL префикс используемый для формирования сокращенной ссылки: По умолчанию — http://localhost:8080.
  • DATABASE_DSN (-d):Данные для подключения к базе данных: По умолчанию установлен на пусто.
  • FILE_STORAGE_PATH (-f):Путь сохранения файла локального хранения данных: По умолчанию установлен на /tmp/short-url-db.json.
  • ENABLE_TLS (-s):Включение TLS сервера для HTTPS API: По умолчанию установлен на пусто и запускается по HTTP.
  • TRUSTED_SUBNET (-t):Список доверенных подсетей в формате "1.1.1.1, 2.2.2.2": По умолчанию установлен на пусто.
  • GRPC_SERVER (-g):Адрес gRPC сервера: По умолчанию установлен на :3200.

Контрибуция
Этот проект был разработан как часть учебной программы, и мы приветствуем любые предложения и улучшения. Если у вас есть идеи по улучшению проекта, не стесняйтесь отправлять Pull Requests или создавать Issues.

About

This is my training project on URL shortening on Yandex Practicum

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published