REST API для сокращения ссылок с учётом переходов и статистикой. Слои: Domain, Application, Infrastructure, Api.
- .NET 8, ASP.NET Core Minimal APIs
- EF Core 8, SQLite
- xUnit,
WebApplicationFactory - Swagger в среде Development
dotnet restore
dotnet buildAPI (по умолчанию см. launchSettings.json):
dotnet run --project src/ShortLinks.Api| Ключ | Назначение |
|---|---|
ConnectionStrings:Default |
Строка подключения SQLite |
App:PublicBaseUrl |
Базовый URL для полной короткой ссылки в ответе POST /links |
App:CodeLength |
Длина случайного кода (ограничивается 7–12) |
App:MaxCreateAttempts |
Попыток генерации уникального кода при коллизии |
| Метод | Путь | Описание |
|---|---|---|
POST |
/links |
Тело: { "targetUrl": "https://..." }. Ответ: код и короткий URL |
GET |
/{code} |
Редирект 302 на целевой URL; неизвестный код — 404 |
GET |
/links/{code}/stats |
Переходы, дата создания, целевой URL |
dotnet testСборка и запуск (порт 8080, см. Dockerfile):
docker build -t shortlinks .
docker run --rm -p 8080:8080 shortlinks