Микросервис availability-orchestration
Микросервис availability-orchestration используется для предоставления информации о наличии товара.
Доступ к сервису выдается по запросу.
Логика работы микросервиса
В работе микросервиса участвует сущность Остаток (Availability), которая содержит информацию об остатке (id, количество товаров в штуках, id/код/название склада (локации) и др.).
Аутентификация
При обращении к микросервису
availability-orchestration через API в запросах на создание, редактирование или удаление
остатков необходимо в заголовке Authorization указать
токен: Authorization: Bearer
<токен>
.
Service context path
/api/availability-orchestration/
Настройки и параметры конфигурации микросервиса
Параметры конфигурации указываются в Vault.
Vault используется на нашей платформе в качестве хранилища всех конфигураций развертывания.
{
"env": {
"JAVA_XMS": "ХХm",
"JAVA_XMX": "YYYm",
"LOGGING_FORMAT": "формат_логирования",
"LOGGING_LEVEL": "уровень_логирования",
"SERVER_PORT": "порт_сервера"
}
}
// пример взят с тестового стенда
{
"env": {
"AVAILABILITY_URL": "путь_к_сервису_availability",
"CATALOG_URL": "путь_к_сервису_catalog",
"OAUTH_ECOM_CLIENT_ID": "токен_приложения_ECOM_OAuth",
"OAUTH_ECOM_ISSUER_URI": "url_ECOM_OAuth",
"OAUTH_ZITADEL_CLIENT_ID": "токен_приложения_Zitadel",
"OAUTH_ZITADEL_ISSUER_URI": "url_Zitadel"
}
}
Методы микросервиса
Получение информации об остатках товаров - GET запрос, /v1/availabilities
pageable object // обязательный параметр, разбивает результат на
страницы, указывает, по какому свойству и порядок сортировки
{
"page": 0, // номер страницы
"size": 3, // количество показываемых элементов
"sort": [ // параметр сортировки, по какому свойству
идет сортировка и ее порядок
"id,asc"
]
}
articleId array // необязательный
параметр, массив id товаров, для отображения информации только по заданным
остаткам (если указан, то параметр разбивки на страницы
игнорируется)
{
"content": [ // содержит массив остатков, в
соответствии с запросом показано 3 объекта, отсортированных по id по
возрастанию
{
"id": "02b986c8-b44f-411c-9b2c-df8a9a29a925", // id
остатка
"articleId": "1000602DC",
// id товара
"quantity": 1, //
количество товара
"replenishmentTime": 0, // время поставки товара, это свойство не используется
на данный момент
"locationCode":
"21" // обязательный параметр, код локации
},
{
"id": "02c6deb3-5832-4774-a5dc-bf075e8f43f5",
"articleId": "1000195DC",
"quantity": 12,
"replenishmentTime": 0,
"locationCode": "21"
},
{
"id":
"041eac68-ce55-4d82-97b3-fdc812aa552b",
"articleId": "1000075",
"quantity": 0,
"replenishmentTime": 12,
"locationCode": "21"
}
],
"pageable": {
"sort": {
"unsorted": false,
"sorted": true,
"empty": false
},
"pageNumber": 0,
"pageSize": 3,
"offset": 0,
"paged": true,
"unpaged": false
},
"last":
false,
"totalPages": 51,
"totalElements": 151,
"first": true,
"numberOfElements": 3,
"sort": {
"unsorted": false,
"sorted": true,
"empty": false
},
"size": 3,
"number": 0,
"empty": false
}
200 - операция успешно выполнена. Отдает или массив объектов (если есть информация), или пустой массив (если информации по задаваемым параметрам нет).
Создание нового остатка товара - POST запрос, /v2/availabilities
{
"articleId": "123", // id товара
"quantity": 10, // количество товара
"replenishmentTime": 0, // время поставки товара, сейчас не используется
"locationCode": "21" // обязательный параметр, код
локации
}
Отсутствует.
- 201 - Операция успешна. Создан остаток.
- 400 - Остаток не создан.
- 409 - Ошибка. Остаток уже существует.
- 422 -
Ошибка. Данные, передаваемые в запросе, невалидны.
Получение информации по конкретному остатку по его ID - GET запрос, /v1/availabilities/{id}
id - path-параметр, обязательный: идентификатор остатка
{
"id": "5dc618af-af49-4adc-bccd-4d17aeff7526",
// id остатка
"articleId": "123", // id товара
"quantity": 10, // количество товара
"replenishmentTime": 0, // время поставки товара, сейчас не используется
"locationCode": "21" // обязательный параметр, код
локации
}
- 200 - Операция успешна. Выдана информация по остатку.
- 404 - Ошибка. Остаток не найден.
- 422 - Ошибка. Отсутствуют
обязательные данные (например, id остатка).
Получение списка с кодами локациями (используется для фильтра “Код локации”) - GET запрос, /v1/availabilities/location-codes/unique
page - query-параметр: номер страницы
size -
query-параметр: количество локаций в списке
term - query-параметр:
поисковый запрос
{
"content": [
"23",
"22",
"21",
"20AB",
"20",
"17",
"15",
"12",
"1111",
"111"
],
"number": 1,
"size": 10,
"totalElements": 24,
"pageable": {
"sort": {
"sorted": false,
"unsorted": true,
"empty": true
},
"pageNumber": 1,
"pageSize": 10,
"offset": 10,
"paged": true,
"unpaged": false
},
"last":
false,
"totalPages": 3,
"sort": {
"sorted": false,
"unsorted": true,
"empty": true
},
"first": false,
"numberOfElements": 10,
"empty": false
}
200 - Операция выполнена успешно, возвращен список кодов локаций для фильтра “Код локации”.
Получение списка с артикулами (используется для фильтра “Артикул”) - GET запрос, /v1/availabilities/articles/unique
page - query-параметр: номер страницы
size -
query-параметр: количество артикулов в списке
term -
query-параметр: поисковый запрос
{
"content": [
"1000778DC"
],
"number": 0,
"size": 1,
"totalElements":
1,
"pageable": "INSTANCE",
"last": true,
"totalPages": 1,
"sort": {
"sorted": false,
"unsorted": true,
"empty": true
},
"first":
true,
"numberOfElements": 1,
"empty": false
}
200 - Операция выполнена успешно, возвращен список артикулов для фильтра “Артикул”.
Удаление остатка по его ID - DELETE запрос, /v1/availabilities/{id}
id - path-параметр, обязательный: идентификатор остатка
Отсутствует. В ответе приходит только код операции, например,
204.
- 200 - операция выполнена успешно, возвращен список остатков с учетом примененных фильтров
- 422 - ошибка, Unprocessable Entity
Создание нового остатка - POST запрос, /v2/availabilities
{
"articleId":
"1001626DC",
"quantity": 2,
"replenishmentTime": 5,
"locationId":
"6d162d69-76db-470d-be15-2d226e6afb19",
"locationCode":
"677F",
"locationName": "Главный склад F17"
}
{
"id":
"bfb9565e-2df2-4621-850f-02c4490c3af8",
"articleId": "1001626DC",
"quantity":
2,
"replenishmentTime": 5,
"locationId":
"6d162d69-76db-470d-be15-2d226e6afb19",
"locationCode": "677F",
"locationName":
"Главный склад F17"
}
- 200 - операция выполнена успешно, новый остаток создан
- 400 - ошибка, не удалось создать остаток
- 409 - ошибка, остаток уже существует
- 422 - ошибка, невалидные параметры
Редактирование остатка - PATCH запрос, /v2/availabilities/{availabilityId}
availabilityId - path-параметр, обязательный:
уникальный идентификатор остатка, который нужно отредактировать
{
"articleId":
"1001626DC",
"quantity": 5,
"replenishmentTime": 10,
"locationId": "6d162d69-76db-470d-be15-2d226e6afb19",
"locationCode": "677F",
"locationName": "Главный склад F17"
}
{
"id":
"bfb9565e-2df2-4621-850f-02c4490c3af8",
"articleId": "1001626DC",
"quantity":
5,
"replenishmentTime": 10,
"locationId":
"6d162d69-76db-470d-be15-2d226e6afb19",
"locationCode": "677F",
"locationName":
"Главный склад F17"
}
Response codes:
- 204 - операция успешна, остаток обновлен и выдана обновленная информация по остатку
- 404 - ошибка, остаток не найден
- 409 - ошибка, остаток не может быть отредактирован
- 422 - ошибка, невалидные данные в запросе
Обновление данных о локации остатка - PATCH запрос, /v1/availabilities/location-info
{
"id":
"bfb9565e-2df2-4621-850f-02c4490c3af8",
"articleId": "1001626DC",
"quantity":
5,
"replenishmentTime": 10,
"locationId":
"20f340a2-17ee-47b2-81c2-793a5b265a3e",
"locationCode": "22",
"locationName":
"Материалы из дерева"
}
Отсутствует. В ответе приходит только код операции, например, 202.
- 202 - операция выполнена успешно
- 422 - ошибка, Unprocessable Entity
Удаление остатка по его ID - DELETE запрос, /v1/availabilities/{availabilityId}
availabilityId - path-параметр, обязательный:
уникальный идентификатор остатка, который нужно удалить
Отсутствует. В ответе приходит только код операции, например, 204.
- 204 - Операция успешна. Остаток удален.
- 404 - Ошибка. Остаток с таким ID не найден.
Редактирование информации по наличию товара по ID остатка - PATCH запрос, /v2/availabilities/{availabilityId}
availabilityId - path-параметр, обязательный:
идентификатор остатка
{
"id":
"5dc618af-af49-4adc-bccd-4d17aeff7526", // id остатка
"articleId": "123", // id товара
"quantity": 20, //
количество товара
"replenishmentTime": 0, // время
поставки товара, сейчас не используется
"locationCode":
"21" // обязательный параметр, код локации
}
Отсутствует.
Response codes:
- 204 - Операция успешна. Остаток обновлен, и выдана обновленная информация по остатку.
- 404 - Ошибка. Остаток не найден.
- 409 - Ошибка. Остаток не может быть отредактирован.
- 422 - Ошибка. Невалидные данные в запросе.