Categorygithub.com/DenisKhanov/shorterURL
repository
0.0.0-20240416064245-4b5fdb6e4873
Repository: https://github.com/deniskhanov/shorterurl.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# README

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.