# API Для работы с тестовой базой данных для задания собрано минимальное API. БД SQLite, работает без ORM через библиотеку Microsoft.Data.Sqlite. Приложение собрано в Docker-образ и развернуто по адресу ## База данных - Таблица со списком категорий ```sql CREATE TABLE categories( category_id INT NOT NULL PRIMARY KEY, category_name VARCHAR(10) ); ``` - Таблица со списком продуктов ```sql CREATE TABLE products( product_id INT NOT NULL PRIMARY KEY, product_name VARCHAR(10) ); ``` - Таблица товара с категориями ```sql CREATE TABLE grocery_store( product_id INT, category_id INT, FOREIGN KEY (product_id) REFERENCES products (product_id), FOREIGN KEY (category_id) REFERENCES categories (category_id) ); ``` ## Выбор пар "Имя продукта - Имя категории" Запрос ```sql SELECT product_name AS product, category_name AS category FROM products LEFT JOIN grocery_store ON grocery_store.product_id = products.product_id LEFT JOIN categories ON grocery_store.category_id = categories.category_id ORDER BY product; ``` ```ps Invoke-RestMethod https://mindbox.cebotari.ru/item -Method GET ``` ``` productName categoryName ----------- ------------ Apple Red Apple Green Cucumber Green Eggplant Olives Black Tomato Red ``` ## Дополнительно реализовано - Вывод списка продуктов ```ps Invoke-RestMethod https://mindbox.cebotari.ru/product -Method GET ``` ``` id name -- ---- 1 Apple 2 Cucumber 3 Tomato 4 Eggplant 5 Olives ``` - Добавление нового продукта ```ps Invoke-RestMethod https://mindbox.cebotari.ru/product -Method POST -Body (@{Id=5; Name="Olives"} | ConvertTo-Json) -ContentType "application/json" ``` - Вывод списка категорий ```ps Invoke-RestMethod https://mindbox.cebotari.ru/category -Method GET ``` ``` id name -- ---- 1 Red 2 Green 3 Yellow 4 Magenta 5 Black ``` - Добавление новой категории ```ps Invoke-RestMethod https://mindbox.cebotari.ru/category -Method POST -Body (@{Id=5; Name="Black"} | ConvertTo-Json) -ContentType "application/json" ``` - Добавление нового товара ```ps Invoke-RestMethod -Uri "https://mindbox.cebotari.ru/item?productId=5&categoryId=5" -Method POST ```