Archived
1
0

Update README.md

This commit is contained in:
Serghei Cebotari 2023-11-14 15:49:30 +03:00
parent 8035577277
commit f81b4d3c82

View File

@ -1,19 +1,23 @@
# API
Для работы с тестовой базой данных для задания собрано минимальное API. БД SQLite, работает без ORM через библиотеку Microsoft.Data.Sqlite.
Приложение собрано в Docker-образ и развернуто по адресу <https://mindbox.cebotari.ru/>
## База данных ## База данных
### Таблица со списком категорий - Таблица со списком категорий
```sql ```sql
CREATE TABLE categories( CREATE TABLE categories(
category_id INT NOT NULL PRIMARY KEY, category_id INT NOT NULL PRIMARY KEY,
category_name VARCHAR(10) category_name VARCHAR(10)
); );
``` ```
### Таблица со списком продуктов - Таблица со списком продуктов
```sql ```sql
CREATE TABLE products( CREATE TABLE products(
product_id INT NOT NULL PRIMARY KEY, product_id INT NOT NULL PRIMARY KEY,
product_name VARCHAR(10) product_name VARCHAR(10)
); );
``` ```
### Таблица товара с категориями - Таблица товара с категориями
```sql ```sql
CREATE TABLE grocery_store( CREATE TABLE grocery_store(
product_id INT, product_id INT,
@ -22,7 +26,7 @@ CREATE TABLE grocery_store(
FOREIGN KEY (category_id) REFERENCES categories (category_id) FOREIGN KEY (category_id) REFERENCES categories (category_id)
); );
``` ```
## Выбор всех пар "Имя продукта - Имя категории" (основное задание) ## Выбор пар "Имя продукта - Имя категории"
Запрос Запрос
```sql ```sql
SELECT product_name AS product, category_name AS category FROM products SELECT product_name AS product, category_name AS category FROM products
@ -30,22 +34,56 @@ LEFT JOIN grocery_store ON grocery_store.product_id = products.product_id
LEFT JOIN categories ON grocery_store.category_id = categories.category_id LEFT JOIN categories ON grocery_store.category_id = categories.category_id
ORDER BY product; ORDER BY product;
``` ```
```ps ```ps
Invoke-RestMethod https://mindbox.cebotari.ru/item -Method GET 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 ```ps
Invoke-RestMethod https://mindbox.cebotari.ru/category -Method POST -Body (@{Id=5; Name="Black"} | ConvertTo-Json) -ContentType "application/json" Invoke-RestMethod https://mindbox.cebotari.ru/category -Method POST -Body (@{Id=5; Name="Black"} | ConvertTo-Json) -ContentType "application/json"
``` ```
### Добавление нового продукта - Добавление нового товара
```ps ```ps
Invoke-RestMethod http://mindbox.cebotari.ru/product -Method POST -Body (@{Id=5; Name="Olives"} | ConvertTo-Json) -ContentType "application/json" Invoke-RestMethod -Uri "https://mindbox.cebotari.ru/item?productId=5&categoryId=5" -Method POST
```
### Добавление новой нового товара
```ps
Invoke-RestMethod -Uri "http://mindbox.cebotari.ru/item?productId=5&categoryId=5" -Method POST
``` ```