Микросервис wishlist

В статье описываются функции, логика работы, конфигурация и методы микросервиса wishlist.

Микросервис wishlist служит для управления списком избранных товаров пользователя на сайте интернет-магазина. С его помощью можно просматривать, добавлять, редактировать и удалять товары из списка избранного.

Доступ к сервису предоставляется по запросу.

В работе микросервиса участвует сущность Wish, которая содержит данные об избранном покупателя: id избранного, id покупателя и артикул варианта товара, который был добавлен в избранное.

Для работы с микросервисом аутентификация не требуется.

/api/wishlist/

Параметры конфигурации указываются в Vault.

Vault используется на нашей платформе в качестве хранилища всех конфигураций развертывания. Инструмент может быть выбран другой.

По умолчанию

{
  "env": {
    "JAVA_XMS": "XXm",
    "JAVA_XMX": "YYYm",
    "LOGGING_FORMAT": "формат_логирования",
    "LOGGING_LEVEL": "уровень_логирования",
    "POSTGRES_DATABASE": "wishlist",
    "POSTGRES_MIGRATION_USER": "wishlist_migration",
    "POSTGRES_PORT": "5432",
    "POSTGRES_USER": "wishlist_user",
    "SERVER_PORT": "порт_сервера"
  }
}

Copy-icon
Указываемые на каждом отдельном стенде

// пример взят с тестового стенда


{
  "env": {
    "OAUTH_ECOM_CLIENT_ID": "токен_приложения_ECOM_OAuth",
    "OAUTH_ECOM_ISSUER_URI": "url_ECOM_OAuth",
    "OAUTH_ZITADEL_CLIENT_ID": "токен_приложения_Zitadel",
    "OAUTH_ZITADEL_ISSUER_URI": "url_Zitadel",
    "POSTGRES_HOST": "хост_бд,
    "POSTGRES_MIGRATION_PASSWORD": "пароль",
    "POSTGRES_PASSWORD": "пароль_бд"
  }
}



Copy-icon

Добавление товара в избранное - POST запрос, /v1/wishes

Request parameters

Отсутствуют.

Request body sample

{
  "customerId": "227485734292973074",
  "articleId": "1021531DC"
}


Copy-icon
Response sample

{
                      "id": "d664586a-f173-4407-b106-2eddef5bb14e",
                      "customerId": "227485734292973074",
                      "articleId": "1021531DC"
                      }
Copy-icon
Response codes
  • 200 - операция выполнена успешно, товар добавлен в избранное
  • 400 - ошибка, не удалось добавить товар в избранное

Получение страницы избранного - POST запрос, /v1/wishes/page

Request parameters

Отсутствуют.

Request body sample

{
  "sort": [
    {
      "sortBy": "id",
      "direction": "ASC"
    }
  ],
  "page": 0,
  "size": 10,
  "filter": {
    "customerId": "227485734292973074"
  }
}

Copy-icon
Response sample
{
                      "content": [
                      {
                      "id": "29aa7aed-2b49-497c-bae0-b3a75418ffac",
                      "customerId": "227485734292973074",
                      "articleId": "1021612DC"
                      },
                      {
                      "id": "4e119fc1-7e51-4360-96f0-3d24933e952b",
                      "customerId": "227485734292973074",
                      "articleId": "1021531DC"
                      },
                      {
                      "id": "5d7e2931-1257-4788-afc4-15bbcf5d5c61",
                      "customerId": "227485734292973074",
                      "articleId": "1021617DC"
                      }
                      ],
                      "pageable": {
                      "sort": {
                      "unsorted": false,
                      "sorted": true,
                      "empty": false
                      },
                      "pageNumber": 0,
                      "pageSize": 10,
                      "offset": 0,
                      "paged": true,
                      "unpaged": false
                      },
                      "totalPages": 1,
                      "totalElements": 3,
                      "last": true,
                      "first": true,
                      "numberOfElements": 3,
                      "sort": {
                      "unsorted": false,
                      "sorted": true,
                      "empty": false
                      },
                      "size": 10,
                      "number": 0,
                      "empty": false
                      }
Copy-icon
Response codes

200 - операция выполнена успешно, получена страница избранного

Получение списка избранного - POST запрос, /v1/wishes/list

Request parameters

Отсутствуют.

Request body sample

{
  "customerId": "227485734292973074"
}

Copy-icon
Response sample
[
                      {
                      "id": "29aa7aed-2b49-497c-bae0-b3a75418ffac",
                      "customerId": "227485734292973074",
                      "articleId": "1021612DC"
                      },
                      {
                      "id": "5d7e2931-1257-4788-afc4-15bbcf5d5c61",
                      "customerId": "227485734292973074",
                      "articleId": "1021617DC"
                      },
                      {
                      "id": "4e119fc1-7e51-4360-96f0-3d24933e952b",
                      "customerId": "227485734292973074",
                      "articleId": "1021531DC"
                      }
                      ]
Copy-icon
Response codes

200 - операция выполнена успешно, получен список избранного

Получение избранного по ID - GET запрос, /v1/wishes/{id}

Request parameters

id - path-параметр, обязательный: уникальный идентификатор избранного

Copy-icon
Response sample

{
                      "id": "29aa7aed-2b49-497c-bae0-b3a75418ffac",
                      "customerId": "227485734292973074",
                      "articleId": "1021612DC"
                      }
Copy-icon
Response codes
  • 200 - операция выполнена успешно, получены данные запрашиваемого избранного
  • 404 - ошибка, избранное с таким ID не найдено

Удаление товара из избранного - DELETE запрос, /v1/wishes/{id}

Request parameters

id - path-параметр, обязательный: уникальный идентификатор избранного

Copy-icon
Response sample

Отсутствует. В ответе приходит только код операции, например, 204.

Response codes
  • 204 - операция выполнена успешно, избранное удалено
  • 404 - ошибка, избранное с таким ID не найдено

Обновление избранного - PATCH запрос, /v1/wishes/{id}

Request parameters

id - path-параметр, обязательный: уникальный идентификатор избранного

Copy-icon
Request body sample

{
  "customerId": "227485734292973074",
  "articleId": "1019728DC"
}

Copy-icon
Response sample
{
                      "id": "29aa7aed-2b49-497c-bae0-b3a75418ffac",
                      "customerId": "227485734292973074",
                      "articleId": "1019728DC"
                      }
Copy-icon
Response codes
  • 200 - операция выполнена успешно, избранное обновлено
  • 400 - ошибка, не удалось обновить избранное

Связанные статьи

 Микросервисы