add dotnet backend

This commit is contained in:
2025-10-02 15:19:15 +05:00
parent 67f292cd60
commit 109629c6f9
12 changed files with 347 additions and 4 deletions

44
backend-dotnet/README.md Normal file
View File

@ -0,0 +1,44 @@
# .NET 8 Backend
Функционально эквивалентный бэкенд на .NET 8 для Dex Demo.
## Запуск
### Локально
```bash
dotnet run
```
### Docker
```bash
docker build -t dex-demo-backend-dotnet:latest .
docker run -p 8000:8000 \
-e DB_HOST=postgres \
-e DB_PORT=5440 \
-e DEX_ISSUER=https://dex.127.0.0.1.sslip.io/ \
dex-demo-backend-dotnet:latest
```
## Особенности реализации
- **Minimal APIs**: современный подход ASP.NET Core без лишнего бойлерплейта
- **Records**: для моделей данных (immutable, concise)
- **Dapper**: микро-ORM для чистой и производительной работы с БД
- **Dommel**: расширение Dapper для CRUD операций
- **OpenIdConnect**: стандартный механизм получения JWKS
- **Npgsql**: официальный PostgreSQL provider для .NET
- **Async/await**: полностью асинхронный код
- **Top-level statements**: без Program/Main класса
## API
- `GET /api/health` - проверка здоровья
- `GET /api/user-info` - информация о пользователе (требует авторизацию)
## Переменные окружения
Все переменные идентичны Python версии:
- `DB_HOST`, `DB_PORT`, `DB_NAME`, `DB_USER`, `DB_PASSWORD`
- `DEX_ISSUER`
- `INSECURE_DEV_MODE`, `INSECURE_DEV_EMAIL`