Микросервис wishlist-orchestration
Микросервис wishlist-orchestration служит для управления списком избранных товаров пользователя на сайте интернет-магазина. С его помощью можно просматривать, добавлять и удалять товары из списка избранного.
Доступ к сервису предоставляется по запросу.
Логика работы
В работе микросервиса участвует сущность Wish, которая содержит данные об избранном покупателя: id избранного, id покупателя и артикул варианта товара, который был добавлен в избранное.
Аутентификация
При обращении к микросервису через API в запросах необходимо в заголовке Authorization указывать токен: Authorization: Bearer <токен>
.
Service context path
/api/wishlist-orchestration/
Настройки и параметры конфигурации
Параметры конфигурации указываются в Vault.
Vault используется на нашей платформе в качестве хранилища всех конфигураций развертывания. Инструмент может быть выбран другой.
{
"env": {
"JAVA_XMS": "XXm",
"JAVA_XMX": "YYYm"
}
}
// пример взят с тестового стенда
{
"env": {
"OAUTH_ECOM_CLIENT_ID": "токен_приложения_ECOM_OAuth",
"OAUTH_ZITADEL_CLIENT_ID": "токен_приложения_Zitadel",
"OAUTH_ZITADEL_ISSUER_URI": "url_Zitadel"
}
}
Методы микросервиса
- Добавление товара в избранное покупателя - POST запрос, /v1/wishes/my
Отсутствуют.
{
"customerId": "227485734292973074",
"articleId": "1021531DC"
}
Отсутствует. В ответе приходит только код операции, например, 200.
- 200 - операция выполнена успешно, товар добавлен в избранное
- 400 - ошибка, не удалось добавить товар в избранное
- Получение страницы избранных товаров пользователя - POST запрос, /v1/wishes/my/page
Отсутствуют.
{
"sort": [
{
"sortBy": "id",
"direction": "ASC"
}
],
"page": 0,
"size": 10,
"filter": {
"customerId": "227485734292973074"
}
}
{
"content": [
{
"id": "1019728DC",
"productId": "1019727DC",
"name": "Бутылка для воды",
"description": "",
"assets": [
{
"id": "dbd7ff30-4241-4ba4-be9e-7a681d7f7e51",
"media": {
"url": "master/catalog/images/1707916795224-1882559365.png",
"absoluteUrl": "https://test-ecom-media.digitalchief.tech/master/catalog/images/1707916795224-1882559365.png",
"name": "1690988018921-1882559365.png",
"type": "PHOTO",
"size": 291942,
"resolution": "427x427 px",
"createdDate": "2024-02-14T16:20:04.169"
},
"title": "1690988018921-1882559365",
"altAttr": "1690988018921-1882559365",
"description": "",
"sign": "",
"tags": [
""
]
},
{
"id": "f1883698-e089-47b3-b911-498a9aa41614",
"media": {
"url": "master/catalog/images/1707916794081-1882559365.png",
"absoluteUrl": "https://test-ecom-media.digitalchief.tech/master/catalog/images/1707916794081-1882559365.png",
"name": "1690988018746-1882559365.png",
"type": "PHOTO",
"size": 37009,
"resolution": "383x383 px",
"createdDate": "2024-02-14T16:20:04.164"
},
"title": "1690988018746-1882559365",
"altAttr": "1690988018746-1882559365",
"description": "",
"sign": "",
"tags": [
""
]
},
{
"id": "a36edfee-fd77-4ecc-904b-b583f8b9a098",
"media": {
"url": "master/catalog/images/1720185232780-1882559365.webp",
"absoluteUrl": "https://test-ecom-media.digitalchief.tech/master/catalog/images/1720185232780-1882559365.webp",
"name": "11500_11.webp",
"type": "PHOTO",
"size": 537688,
"resolution": "929x1392 px",
"createdDate": "2024-07-05T16:13:56.475"
},
"title": "11500_11",
"altAttr": "11500_11",
"description": "",
"sign": "",
"tags": [
""
]
}
],
"attributes": [],
"status": 300,
"prices": {
"02d3eb94-8d0c-4e21-a952-db8684a1534d": {
"unitPrice": 2500,
"discountUnitPrice": 2500
}
},
"orderable": true
},
{
"id": "1021531DC",
"productId": "1021528DC",
"name": "Термос",
"description": "",
"assets": [
{
"id": "dbd7ff30-4241-4ba4-be9e-7a681d7f7e51",
"media": {
"url": "master/catalog/images/1707916795224-1882559365.png",
"absoluteUrl": "https://test-ecom-media.digitalchief.tech/master/catalog/images/1707916795224-1882559365.png",
"name": "1690988018921-1882559365.png",
"type": "PHOTO",
"size": 291942,
"resolution": "427x427 px",
"createdDate": "2024-02-14T16:20:04.169"
},
"title": "1690988018921-1882559365",
"altAttr": "1690988018921-1882559365",
"description": "",
"sign": "",
"tags": [
""
]
}
],
"attributes": [
{
"featureId": "f1006659DC",
"name": "Финиш",
"indexable": true,
"value": "классный"
}
],
"status": 300,
"prices": {
"02d3eb94-8d0c-4e21-a952-db8684a1534d": {
"unitPrice": 123,
"discountUnitPrice": 123
}
},
"orderable": true
},
{
"id": "1021617DC",
"productId": "1021616DC",
"name": "Шорты джинсовые Levi's® ORIGINAL голубые",
"description": "",
"assets": [
{
"id": "a34cf313-3058-48ff-9109-faa07416e74c",
"media": {
"url": "master/catalog/images/1713437908760-1882559365.jpg",
"absoluteUrl": "https://test-ecom-media.digitalchief.tech/master/catalog/images/1713437908760-1882559365.jpg",
"name": "photo_2024-01-10_19-26-00.jpg",
"type": "PHOTO",
"size": 228232,
"resolution": "900x1200 px",
"createdDate": "2024-04-18T13:58:30.587"
},
"title": "photo_2024-01-10_19-26-00",
"altAttr": "photo_2024-01-10_19-26-00",
"description": "",
"sign": "",
"tags": [
""
]
}
],
"attributes": [
{
"featureId": "f1007509DC",
"name": "Расцветка",
"indexable": true,
"value": "голубой"
}
],
"status": 300,
"prices": {
"02d3eb94-8d0c-4e21-a952-db8684a1534d": {
"unitPrice": 2500,
"discountUnitPrice": 2500
}
},
"orderable": true
}
],
"pageable": "INSTANCE",
"last": true,
"totalPages": 1,
"totalElements": 3,
"first": true,
"numberOfElements": 3,
"sort": {
"unsorted": true,
"sorted": false,
"empty": true
},
"size": 3,
"number": 0,
"empty": false
}
200 - операция выполнена успешно, получена страница избранного
- Получение списка артикулов избранных товаров пользователя - POST запрос, /v1/wishes/my/list
Отсутствуют.
Отсутствует.
[
"1021617DC",
"1019728DC",
"1021531DC"
]
200 - операция выполнена успешно, получен список артикулов избранных товаров пользователя
- Удаление товара из списка избранного - DELETE запрос, /v1/wishes/my/{articleId}
articleId - path-параметр, обязательный: артикул варианта товара, который нужно удалить из списка избранного
Отсутствует. В ответе приходит только код операции, например, 204.
- 204 - операция выполнена успешно, товар удален из списка избранного
- 404 - ошибка, товар с таким ID не найден