45 lines
1.5 KiB
Markdown
45 lines
1.5 KiB
Markdown
# .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`
|
||
|