API для работы с запросами тестового задания Mindbox
https://mindbox.cebotari.ru/
.vscode | ||
MindBoxApi | ||
.gitignore | ||
Dockerfile | ||
MindBoxApi.sln | ||
README.md |
API
Для работы с тестовой базой данных для задания собрано минимальное API. БД SQLite, работает без ORM через библиотеку Microsoft.Data.Sqlite. Приложение собрано в Docker-образ и развернуто по адресу https://mindbox.cebotari.ru/
База данных
- Таблица со списком категорий
CREATE TABLE categories(
category_id INT NOT NULL PRIMARY KEY,
category_name VARCHAR(10)
);
- Таблица со списком продуктов
CREATE TABLE products(
product_id INT NOT NULL PRIMARY KEY,
product_name VARCHAR(10)
);
- Таблица товара с категориями
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)
);
Выбор пар "Имя продукта - Имя категории"
Запрос
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;
Invoke-RestMethod https://mindbox.cebotari.ru/item -Method GET
productName categoryName
----------- ------------
Apple Red
Apple Green
Cucumber Green
Eggplant
Olives Black
Tomato Red
Дополнительно реализовано
- Вывод списка продуктов
Invoke-RestMethod https://mindbox.cebotari.ru/product -Method GET
id name
-- ----
1 Apple
2 Cucumber
3 Tomato
4 Eggplant
5 Olives
- Добавление нового продукта
Invoke-RestMethod https://mindbox.cebotari.ru/product -Method POST -Body (@{Id=5; Name="Olives"} | ConvertTo-Json) -ContentType "application/json"
- Вывод списка категорий
Invoke-RestMethod https://mindbox.cebotari.ru/category -Method GET
id name
-- ----
1 Red
2 Green
3 Yellow
4 Magenta
5 Black
- Добавление новой категории
Invoke-RestMethod https://mindbox.cebotari.ru/category -Method POST -Body (@{Id=5; Name="Black"} | ConvertTo-Json) -ContentType "application/json"
- Добавление нового товара
Invoke-RestMethod -Uri "https://mindbox.cebotari.ru/item?productId=5&categoryId=5" -Method POST