Приложение управления складом. Представляет собой Web API с клиентами для взаимодействия и хранилище данных.
Ключевые проекты в решении:
Web- Web APIConsoleApplication- интерактивное консольное приложение для взаимодействия с APIWarehouseTests- тесты
Приложение предоставляет доступ к ручкам для выполнения операций над сущностями.
Спецификация OpenAPI доступна в автогенерируемом файле swagger.json. Он создаётся при
каждом запуске Web API с использованием локального инструмента Swashbuckle.AspNetCore.Cli.
GET /api/v1/pallets- получение всех паллетGET /api/v1/pallets/{palletId}- получение паллетыPOST /api/v1/pallets- добавление паллетыPATCH /api/v1/pallets/{palletId}- изменение паллетыDELETE /api/v1/pallets/{palletId}- удаление паллеты
GET /api/v1/boxes- получение всех коробокGET /api/v1/boxes/{boxId}- получение коробкиGET /api/v1/pallets/{palletId}/boxes- получение всех коробок на паллетеPOST /api/v1/pallets/{palletId}/boxes- добавление коробки на паллетуPATCH /api/v1/pallets/{palletId}/boxes/{boxId}- изменение коробкиDELETE /api/v1/boxes/{boxId}- удаление коробки
Необходимые зависимости:
- .NET 8.0
- EF Core CLI (для работы с миграциями)
- Docker (для запуска тестов или базы данных)
Убедитесь, что выбран нужный поставщик данных в appsettings.json. Приложение поддерживает SQLite и PostgreSQL.
При выборе PostgreSQL, убедитесь, что база данных запущена и доступна. Вы можете воспользоваться готовым docker-compose,
который создаст и запустит контейнер с PostgreSQL. Для этого, запустите Docker и из \docker выполните:
docker-compose up --buildДля подключения к этой БД восползьуйтесь следующей строкой подключения в appsettings.json:
Host=localhost;Port=5432;Database=warehouse;Username=warehouse;Password=password
Из корневой директории проекта:
dotnet run --project .\src\WebУбедитесь, что Web API запущено и доступно по адресу, указанному в appsettings.json.
Из корневой директории проекта:
dotnet run --project .\src\ConsoleApplicationУбедитесь, что Docker запущен. Тесты используют TestContainers.
Из корневой директории проекта:
dotnet testДля создания новой миграции, выберите имя миграции и её расположение. Для миграций к SQLite используйте проект Data.Migrations.SQLite, для PostgreSQL - Data.Migrations.Psql.
Убедитесь, что установлены желаемые значения в appsettings.json, и что база данных (в случае PostgreSQL) запущена и доступна.
Из корневой директории проекта выполните команду, заменив <MigrationName> и <MigrationProject> на соответствующие значения:
dotnet ef migrations add <MigrationName> --project <MigrationProject> --startup-project src/Web --context WarehouseDbContextМиграция применится автоматически при запуске Web API. Для применения миграции вручную, выполните:
dotnet ef database update --project <MigrationProject> --startup-project src/Web --context WarehouseDbContext