C
C# 1001 notes
@csharp_1001_notes6.5K подп.
2.9Kпросмотров
44.9%от подписчиков
20 февраля 2026 г.
stats📷 ФотоScore: 3.2K
⚡️ URL shortener за <100 строк на .NET - реально Идея простая: у тебя есть входной URL -> генеришь короткий код -> сохраняешь в БД -> по коду делаешь редирект. Что нужно собрать - Генератор уникального кода Делай base62 (0-9, a-z, A-Z) длиной 6-8 символов. Главное - гарантировать уникальность: - либо проверка в БД и повтор генерации при коллизии - либо уникальный индекс по Code и ретрай при ошибке сохранения - База данных Таблица ShortenedUrl: - Id (Guid) - LongUrl (string) - Code (string, unique) - CreatedOnUtc (DateTime) Опционально: - ExpiresOnUtc - Clicks - CreatedByIp - 2 эндпоинта (Minimal API) - POST /shorten - валидируешь URL (Uri.TryCreate) - генеришь code - формируешь shortUrl из scheme + host + code - сохраняешь в БД - возвращаешь shortUrl - GET /{code} - ищешь code в БД - если нет - 404 - если есть - Results.Redirect(LongUrl) Почему чаще всего "падают" такие сервисы - Коллизии кода -> решается unique index + retry - Открытый редирект на мусор -> валидируй UriKind.Absolute и при желании режь опасные схемы (только http/https) - Производительность поиска -> индекс по Code обязателен - Правильный shortUrl за прокси -> если сервис за nginx/cloudflare, учитывай Forwarded Headers, иначе host/scheme будут неправильными Если делать максимально чисто - генератор кода отдельным сервисом, модель + DbContext, и два эндпоинта. Это и укладывается в <100 строк.
2.9K
просмотров
1459
символов
Нет
эмодзи
Да
медиа

Другие посты @csharp_1001_notes

Все посты канала →
⚡️ URL shortener за <100 строк на .NET - реально Идея проста — @csharp_1001_notes | PostSniper