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

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

Микросервис market предоставляет возможности для управления рынками в системе BackOffice. С его помощью можно просматривать, создавать, редактировать и удалять рынки.

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

Логика работы

В работе микросервиса участвуют следующие сущности:

  • Рынок (Market) - содержит данные о рынке (id, название, медиа ассет и описание)
  • Медиа ассет (MediaAsset) - содержит данные о медиа ассете, который используется для рынка (id, тайтл, описание, альтернативный текст, тэги и др.)
  • Медиа (Media) - содержит данные о медиа (url на соответствующем внешнем ресурсе, название, тип, размер, разрешение, дата создания и др.)

Аутентификация

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

Авторизация

Для работы с микросервисом в BackOffice у пользователя должна быть роль Admin и/или Admin_Settings.

Подробнее о ролях можно узнать здесь.

Service context path

/api/market/

Настройки и параметры конфигурации

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

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

По умолчанию

{
  "env": {
    "JAVA_XMS": "ХХm",
    "JAVA_XMX": "YYYm",

    "SPRING_DATA_MONGODB_DATABASE": "название_бд",
    "SPRING_DATA_MONGODB_PORT": "порт_бд",
    "SPRING_DATA_MONGODB_USERNAME": "юзернейм_для_бд"
  }
}

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

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

 

{
  "env": {
    "SPRING_DATA_MONGODB_HOST": "хост_бд",
    "SPRING_DATA_MONGODB_PASSWORD": "пароль_для_бд"
  }
}




Copy-icon

Методы микросервиса Copy-icon

  • Получение страницы с рынками - POST запрос, /v1/markets/page
Request body sample

{
  "sort": [
    {
      "sortBy": "name",
      "direction": "ASC"
    }
  ],
  "page": 0,
  "size": 10
}

Copy-icon
Response sample

[
  {
    "id": "df7d8d66-39d5-466d-876b-f7e4f2bbecfc",
    "name": "Беларусь",
    "description": "Республика Беларусь, г. Минск, ул. Кальварийская д.1",
    "assets": [
      {
        "id": "0e8ffc05-a085-4c5a-9679-de91d9b1367b",
        "media": {
          "url": "master/catalog/images/1715161957085-1882559365.png",
          "absoluteUrl": "https://test-ecom-media.digitalchief.tech/master/catalog/images/1715161957085-1882559365.png",
          "name": "Flag_of_Belarus.svg.png",
          "type": "PHOTO",
          "size": 5004,
          "resolution": "640x320 px",
          "createdDate": "2024-05-08T12:52:38.062"
        },
        "title": "Flag_of_Belarus",
        "altAttr": "Flag_of_Belarus",
        "description": "",
        "sign": "",
        "tags": [
          ""
        ]
      }
    ]
  },
  {
    "id": "4e5d563b-ba98-4d73-a7f0-a3f70514da88",
    "name": "Китай",
    "description": "Китай",
    "assets": [
      {
        "id": "d8bebe28-5a6d-4f25-9c05-680a0bcf6080",
        "media": {
          "url": "master/catalog/images/1715076260063-1882559365.jpg",
          "absoluteUrl": "https://test-ecom-media.digitalchief.tech/master/catalog/images/1715076260063-1882559365.jpg",
          "name": "Китай (флаг).jpg",
          "type": "PHOTO",
          "size": 9712,
          "resolution": "612x407 px",
          "createdDate": "2024-05-07T13:04:38.167"
        },
        "title": "Китай (флаг)",
        "altAttr": "Китай (флаг)",
        "description": "",
        "sign": "",
        "tags": [
          ""
        ]
      }
    ]
  }
]

Copy-icon
Response codes

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

  • Получение списка рынков - POST запрос, /v1/markets/list
Request body sample

{
  "name": ""
}

Copy-icon
Response sample

[
  {
    "id": "df7d8d66-39d5-466d-876b-f7e4f2bbecfc",
    "name": "Беларусь",
    "description": "Республика Беларусь, г. Минск, ул. Кальварийская д.1",
    "assets": [
      {
        "id": "0e8ffc05-a085-4c5a-9679-de91d9b1367b",
        "media": {
          "url": "master/catalog/images/1715161957085-1882559365.png",
          "absoluteUrl": "https://test-ecom-media.digitalchief.tech/master/catalog/images/1715161957085-1882559365.png",
          "name": "Flag_of_Belarus.svg.png",
          "type": "PHOTO",
          "size": 5004,
          "resolution": "640x320 px",
          "createdDate": "2024-05-08T12:52:38.062"
        },
        "title": "Flag_of_Belarus",
        "altAttr": "Flag_of_Belarus",
        "description": "",
        "sign": "",
        "tags": [
          ""
        ]
      }
    ]
  },
  {
    "id": "4e5d563b-ba98-4d73-a7f0-a3f70514da88",
    "name": "Китай",
    "description": "Китай",
    "assets": [
      {
        "id": "d8bebe28-5a6d-4f25-9c05-680a0bcf6080",
        "media": {
          "url": "master/catalog/images/1715076260063-1882559365.jpg",
          "absoluteUrl": "https://test-ecom-media.digitalchief.tech/master/catalog/images/1715076260063-1882559365.jpg",
          "name": "Китай (флаг).jpg",
          "type": "PHOTO",
          "size": 9712,
          "resolution": "612x407 px",
          "createdDate": "2024-05-07T13:04:38.167"
        },
        "title": "Китай (флаг)",
        "altAttr": "Китай (флаг)",
        "description": "",
        "sign": "",
        "tags": [
          ""
        ]
      }
    ]
  }
]

Copy-icon
Response codes

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

  • Получение рынка по его ID - GET запрос, /v1/markets/{id}
Request parameters

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

Copy-icon
Response sample

{
  "id": "4e5d563b-ba98-4d73-a7f0-a3f70514da88",
  "name": "Китай",
  "description": "Китай",
  "assets": [
    {
      "id": "d8bebe28-5a6d-4f25-9c05-680a0bcf6080",
      "media": {
        "url": "master/catalog/images/1715076260063-1882559365.jpg",
        "absoluteUrl": "https://test-ecom-media.digitalchief.tech/master/catalog/images/1715076260063-1882559365.jpg",
        "name": "Китай (флаг).jpg",
        "type": "PHOTO",
        "size": 9712,
        "resolution": "612x407 px",
        "createdDate": "2024-05-07T13:04:38.167"
      },
      "title": "Китай (флаг)",
      "altAttr": "Китай (флаг)",
      "description": "",
      "sign": "",
      "tags": [
        ""
      ]
    }
  ]
}

Copy-icon
Response codes
  • 200 - операция выполнена успешно, получены данные рынка
  • 404 - ошибка, рынок не найден
  • Создание рынка - POST запрос, /v1/markets
Request body

{
  "name": "Россия",
  "description": "Россия",
  "assets": []
}

Copy-icon
Response sample

{
  "id": "bae03127-a1a5-4ab2-a89c-5b0a80c10cfb",
  "name": "Россия",
  "description": "Россия",
  "assets": []
}

Copy-icon
Response codes
  • 200 - операция выполнена успешно, рынок создан
  • 400 - ошибка, не удалось создать рынок
  • Редактирование рынка - PATCH запрос, /v1/markets/{id}
Request parameters

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

Copy-icon
Request body sample

{
  "id": "bae03127-a1a5-4ab2-a89c-5b0a80c10cfb",
  "name": "Россия",
  "description": "Новое описание рынка России",
  "assets": []
}

Copy-icon
Response sample

{
  "id": "bae03127-a1a5-4ab2-a89c-5b0a80c10cfb",
  "name": "Россия",
  "description": "Новое описание рынка России",
  "assets": []
}

Copy-icon
Response codes
  • 200 - операция выполнена успешно, рынок отредактирован
  • 400 - ошибка, не удалось отредактировать рынок
  • Удаление рынка - DELETE запрос, /v1/markets/{id}
Request parameters

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

Copy-icon
Response sample

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

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