Сервис для сокращения URL с использованием ASP.NET Core

Привет! В сегодняшнем посте расскажу, как я реализовал простой и функциональный сервис для сокращения URL с использованием ASP.NET Core и Entity Framework.

Стек технологий 1. ASP.NET Core Web API — обработка запросов и маршрутизация. 2. Entity Framework Core — взаимодействие с базой данных. 3. MemoryCache — локальное кэширование для ускорения доступа.

Архитектура решения 1. API Три основных метода: - POST /shorten — создание новой сокращённой ссылки. - GET /{code} — редирект по коду на оригинальный URL. - GET /stats/{code} — статистика по кликам и дате создания.

2. Модель хранения Каждая запись содержит: - Оригинальный URL. - Уникальный короткий код (7 символов из A–Z, a–z, 0–9). - Дату создания и счётчик кликов.

3. Сервис логики - Генерация уникального кода с проверкой на коллизии в базе. - Сохранение и извлечение ссылок. - Инкремент кликов при переходе. - Кэширование ссылок в памяти на 30 минут для снижения нагрузки.

4. Контекст EF + миграции - Настройка контекста ApplicationDbContext и миграций с использованием SQL Server. - Конфигурация строки подключения в appsettings.json.

Оптимизация и масштабируемость - MemoryCache: существенно ускоряет доступ к часто используемым ссылкам. - Проверка дубликатов: не создаём новую ссылку, если такая уже есть в базе. - EF миграции: упрощают управление схемой базы данных.

Полный код проекта 👉 https://github.com/lebedev-ivan/URLShortener - Пример проекта URL Shortener

Не забудьте поставить звезды, если проект вам понравится! ⭐️ Это поможет мне понять, что я на верном пути.

Сервис для сокращения URL с использованием ASP.NET Core | Сетка — новая социальная сеть от hh.ru
repost

246

input message

напишите коммент

еще контент автора

еще контент автора

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь