-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREST API for Shop (main func)
More file actions
176 lines (138 loc) · 6.73 KB
/
REST API for Shop (main func)
File metadata and controls
176 lines (138 loc) · 6.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
### Разработка REST API для реализации основных функций интернет-магазина: отображение витрины товаров, просмотр деталей товара и добавление товаров в корзину.
## REST API
<details>
<br>
<summary>Получение информации о витрине товаров</summary>
Данный эндпойнт позволяет запросить информацию для отображения витрины товаров.
### Метод и путь
| Метод | Путь |
| ----- | --------- |
| GET | `/catalog` |
### Поля ответа
| Наименование | Тип данных | Описание |
| --------------- | ---------- | ------------------------------ |
| name | string | наименование товара |
| production | string | наименование производителя |
| price | string | цена товара |
| img_src | string | ссылка на изображение товара |
| id | number | уникальный идентификатор товара |
### Пример запроса
Используя `curl`:
```bash
curl \
http://127.0.0.1:1234/v1/catalog
### Пример запроса
Используя `curl`:
```bash
curl \
http://127.0.0.1:1234/v1/catalog
{
"catalog": [
{
"name": "Фигурка Эльвира",
"production": "Neca",
"price": "5000.0",
"img_src": "images/figures/neca/34679",
"id": 45678
},
{
"name": "Фигурка Кендимен",
"production": "Trick or Treat",
"price": "4700.0",
"img_src": "images/figures/trick_or_treat/89641",
"id": 75678
}
]
}
<br>
```
</details>
<details>
<br>
<summary>Получение детальной информации о товаре</summary>
Данный эндпойнт позволяет запросить информацию для отображения детальной информации о товаре.
### Метод и путь
| Метод | Путь |
| ----- | --------- |
| GET | `/details/item?id=:id` |
| GET | `/details/item /:id` |
### Параметры запроса
| Наименование | Тип данных |Значение по умолчанию | Обязательность |Описание |
| ----- | --------- | --------- | --------- | --------- |
| id | integer |- |+ |уникальный идентификатор товара |
### Поля ответа
|Наименование |Тип данных| Описание|
| ----- | --------- |---------|
| name | string| наименование товара|
| production | string| наименование производителя|
| price | string | цена товара|
| imgs_src | array |список ссылок на изображения товара|
| id | number |уникальный идентификатор товара|
| productType | string | тип продукта|
| size |string| размер товара |
| material | string | материал товара|
| modelNumber | string| наименование модели товара|
| description | string |описание товара|
### Пример запроса
Используя `curl`:
```bash
curl \
http://127.0.0.1:1234/v1/details/item?id=45678
Пример ответа:
{
"name": "Фигурка Эльвира",
"production": "Neca",
"price": "5000.0",
"imgs_src": [
"images/figures/neca/34679",
"images/figures/neca/34680",
"images/figures/neca/34681",
"images/figures/neca/34682",
"images/figures/neca/34683"
],
"id": 45678,
"productType": "Подвижная фигурка",
"size": "18 см",
"material": "Пластик, ткань",
"modelNumber": "NC1437",
"description": "В конце полнометражных приключений \"Эльвиры, повелительницы тьмы\", наша угарная героиня отыгрывает образ ныне экшн-пенсионеров, а тогда в 80-х звезд типа Арнольда и Сильвестра, вооружившись воинственной раскраской и мощной базукой - именно этот облик точнехонько воспроизвели NECA, уже выдавших идеальные версии фигурок Эльвиры.\n\n И тут без идеальности не обошлось, то же анатомически и пропорционально верное подвижное тело облачено в \"укороченный\" вариант тканевого платья, сменные лица все также превосходно скульптированы и окрашены цифровым образом, пышная прическа детализирована, ну а комплект содержит ту самую базуку и колдовской гримуар, который отлично будет смотреться и в руках других версий Эльвир"
}
```
</details>
<details>
<br>
<summary>Добавление товара в корзину</summary>
Этот эндпойнт позволяет добавить товар в корзину.
### Метод и путь
| Метод | Путь |
| ----- | --------- |
| POST | `/cart` |
### Параметры запроса
| Наименование | Тип данных | Значение по умолчанию | Обязательность | Описание |
| ----- | --------- |--------- | --------- | --------- |
| cart_id | number | - | + | уникальный идентификатор корзины пользователя |
| item_id | number| - | + | уникальный идентификатор товара |
| quantity | number | 1 | - | количество единиц товара |
### Поля ответа
|Наименование |Тип данных| Описание|
| ----- | --------- |---------|
| success | true/false | статус выполнения запроса |
| remains_of_item | number | количество, оставшихся доступных для заказа единиц данного товара |
### Пример запроса
Используя `curl`:
```bash
curl \
-X POST \
-d '{
"cart_id": 7601,
"item_id": 45678,
"quantity": 5
}'\
http://127.0.0.1:1234/v1/cart
Пример ответа:
{
"success": true,
"remains_of_item": 5
}
```
</details>