2.0 KiB
2.0 KiB
SMS Task One
Тестовое задание SMS (Middle C#): REST/gRPC API сервера и консольное приложение с PostgreSQL.
Требования
- .NET 10 SDK
- Docker (для PostgreSQL) или свой экземпляр Postgres 16+
Структура
| Проект | Назначение |
|---|---|
Domain |
Доменные модели |
Contracts |
DTO, JSON, gRPC proto |
ApiServer |
ASP.NET Core: HTTP API + gRPC |
ApiClient |
HTTP и gRPC клиенты |
Console |
Консоль (часть 3 ТЗ): меню, заказ, БД |
Сборка
dotnet build
База данных
Запуск Postgres в Docker (сброс данных):
./scripts/restart-db.sh
Параметры: localhost:5432, БД sms_task, пользователь/поль sms / sms.
Подключение через psql:
psql -h localhost -p 5432 -U sms -d sms_task
Пароль: sms. Вариант с URI:
psql "postgresql://sms:sms@localhost:5432/sms_task"
ApiServer
dotnet run --project src/ApiServer/ApiServer.csproj
| Сервис | URL |
|---|---|
| HTTP API | http://localhost:5053 |
| gRPC | http://localhost:5054 |
Basic Auth (HTTP): user / password (см. src/ApiServer/appsettings.json).
Примеры запросов: src/ApiServer/ApiServer.http.
Console
Сначала запустите ApiServer и БД.
dotnet run --project src/Console/Console.csproj
При старте выбирается протокол: 1 — HTTP, 2 — gRPC. Настройки — в src/Console/appsettings.json. Лог пишется в файл test-sms-console-app-*.log в каталоге запуска; путь выводится в конце работы.
Формат ввода заказа: Артикул:Количество;Артикул:Количество (например A1004292:1).