Руководство по интеграции

Установка плагина для Strapi

В рамках установки плагина для Strapi нужно проделать следующие шаги

  1. Установить пакет @agency/match-center-plugin

  2. Установить переменные окружения (Через заявку в сотруднику платформы ):

Дополнительный функционал

Плагин поставляет дополнительные расширения CMS, которые можно использовать:

  1. Фильтрация дропдаунов

Для корректной работы требуется версия Strapi начиная с 4.19.1

Для установки расширения необходимо подключить middleware в файле конфигурации Strapi config/middlewares.js

module.exports = [ ... "plugin::match-center.filterHelper", ... ];

Интеграция spa

Для доступа к матчцентру необходим установить две переменные окружения (Через заявку сотруднику платформы ).

  1. APP_PUBLIC_MC_URL

  2. INTEGRATION_ID

Доступ к api будет по адресу указанному в APP_PUBLIC_MC_URL, при наличии в запросе хедера “x-integration-id“ со значением из переменной окружения INTEGRATION_ID.

Установка плагина

Плагин поставляется в виде npm-пакета, включающего в себя функционал плагина и автоматическую интеграцию в Strapi CMS после установки

Если вы уже устанавливали другие плагины @agency/ для вашей CMS, вам может потребоваться обновить их до последних версий для корректной работы нового плагина

Варианты установки:

через npm:

npm i @agency/match-center

через yarn:

yarn add @agency/match-center

Пакет плагина располагается в Registry компании поставщика, и для установки может потребоваться настройка .npmrc файла, с указанием токенов доступа для получения доступа к нему.

Пример файла конфигурации .npmrc:

@agency:registry=https://${CI_SERVER_HOST}/api/v4/projects/228/packages/npm/ //${CI_SERVER_HOST}/api/v4/projects/228/packages/npm/:_authToken=${AGENCY_PACKAGE_REGISTRY_READER}

Необходимые переменные окружения

# Smart Tables SMART_TABLES_ENDPOINT= SMART_TABLES_API_KEY= SMART_TABLES_EXTERNAL_ENDPOINT= SMART_TABLES_BEARER= # AI Features PROXYAPI_KEY= PROXYAPI_BASE_URL=

Дополнительная настройка поиска сущностей (необязательно)

Если необходим поиск по включению в выпадающих списках, то следует обновить CMS до версии 4.17 ASIS: Поиск происходит по механизму startWith (поиск по принципу “слева направо”) TOBE: Поиск происходит по механизму containIn (поиск по принципу “включает“)

Поставляемый функционал

  1. Сущности матч центра

  2. Шаблоны сингл страниц матчцентра

  3. Настройки сео полей матчцентра

  4. Конструктор виджетов

  5. Главная страница матчцентра

Общая информация

Плагин расширяет базовый функционал Content builder Strapi, не отменяя его базового функционала. Расширение подразумевает предустановку некоторых сущностей и настроек связанных с матч центром. Доступ ко всем сущностям, возможность их настройки, переопределения и настройка связей с другими сущностями (в том числе не входящим в плагин) сохраняется обычная для Strapi.

Работа со Strapi подразумевается не напрямую а через сервис amp - gateway. Входной роут /pages/*

Адреса сервиса:

Документация доступна по адресу /docs раздел pages

Сущности матч центра

Open image-20240524-125733.pngimage-20240524-125733.png

Виды сущностей

  • Букмекеры

  • Виды спорта

  • Команды

  • Лиги

  • Матчи

  • Страны (не имеет функционала обогащения)

Типы сущностей добавляются автоматически при установке плагина. Наполнение CMS конкретными сущностями происходит так же автоматически после настройки интеграции на стороне платформы (обращаться к@Alexey Balakin ). Добавление новых сущностей происходит каждый 30 минут. Обновление уже добавленных сущностей не происходит. Сущности в CMS имеют урезанный контракт необходимый для идентификации сущности и заполнения сео полей. Запрос сущности происходит по стандартному Strapi контракту. Пример - /match-center/bookmakers/:id - по Id /match-center/bookmakers?filters[slug][$eq]=kilmarnock - по slug

любая другая фильтрация по Strapi контрактам так же доступна.

Каждая сущность по умолчанию имеет связь с блоками виджетов.

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

В случае запроса напрямую из Strapi - контракт придёт эквивалентный Strapi. В случае запроса через gateway - контракт по сущности придёт полный, обогащённый. Пример запроса через gateway. Пример:

http://id_интеграции.amp-gateway.plat.services/api/pages/match-center/teams?filters[slug][$eq]=kilmarnock

В случае если сущность имеет какие то связи, которыми нужно его обогатить можно воспользоваться стандартным query builder Strapi. Пример -

http://id_интеграции.amp-gateway.plat.services/api/pages/match-center/teams?populate[widgets][populate][manualWidgets][populate]=*&populate[widgets][populate][automatedWidgets][populate]=*&filters[slug][$eq]=kilmarnock

Шаблоны сингл страниц матчцентра

Данная сущность предназначена для обогащения каждой сингл сущности. По умолчанию имеет связь с блоками виджетов. Так же может быть расширено на любое кастомное поле или связь. Получение шаблона осуществляется автоматически при запросе сингл сущности через gateway.

В случае если шаблон имеет какие то связи, которыми нужно его обогатить можно воспользоваться стандартным query builder Strapi, добавив его в параметр $template. Пример -

http://id_интеграции.amp-gateway.plat.services/api/pages/match-center/teams?$template[populate][widgets][populate][manualWidgets][populate]=*&$template[populate][widgets][populate][automatedWidgets][populate]=*&filters[slug][$eq]=kilmarnock

Настройки сео полей матчцентра

Данный раздел предназначен для создание маски сео полей. При добавлении сущности в strapi (каждые 30 минут) сео поля будут автоматически заполнены на основе маски выше. Уже созданные сущности, при изменении маски не изменять значения полей!

Конструктор виджетов

Данный раздел позволяет создавать контентные блоки для ваших страниц состоящие из одного или нескольких виджетов для их отображения в необходимом вам месте (по умолчанию существует связь с блоками виджетов на сингл странице каждой сущности, шаблонах и главной страницы). Один блок виджетов может иметь несколько виджетов. Виджеты могут быть двух типов - ручные и автоматические.

Ручные виджеты доступны для всех сущностей матч центра, кроме стран. Они подразумевают под собой создание списка сущностей, выбранных в ручную в данном разделе.

Автоматические виджеты имеют набор полей для фильтрации. При наличии такого виджета gateway заполнит его на основе выбранных фильтров при запросе.

Особые требования к запросам через gateway.

Для того чтобы виджеты были обогащены, необходимо добавить в запрос квери параметр &$enrich[match-center][key][]=widgets где ключ является фиксированным для плагина матчцентра а значение ключа = наименованию созданной вами связи между сущностью и блоком виджетов. Для связи по умолчанию выбран ключ widgets. Таким образом полный контракт запроса на получение сущностей с шаблоном и виджетами выглядит следующим образом -

http://id_интеграции.amp-gateway.plat.services/api/pages/match-center/teams?populate[widgets][populate][manualWidgets][populate]=*&populate[widgets][populate][automatedWidgets][populate]=*&$template[populate][widgets][populate][manualWidgets][populate]=*&$template[populate][widgets][populate][automatedWidgets][populate]=*&$enrich[match-center][key][]=widgets&filters[slug][$eq]=kilmarnock

populate[widgets][populate][manualWidgets][populate]=* - query builder strapi, позволяющий получить связь с ручными виджетами на сущности

populate[widgets][populate][automatedWidgets][populate]=* - query builder strapi, позволяющий получить связь с автоматическими виджетами на сущности

$template[populate][widgets][populate][manualWidgets][populate]=* - query builder strapi, позволяющий получить связь с ручными виджетами на шаблоне, прокинутый в кастомный ключ gateway - $template

$template[populate][widgets][populate][automatedWidgets][populate]=* - query builder strapi, позволяющий получить связь с автоматическими виджетами на шаблоне, прокинутый в кастомный ключ gateway - $template

$enrich[match-center][key][]=widgets - кастомный ключ gateway позволяющий определить связь в рамках которой лежит виджет для его обогащения

filters[slug][$eq]=kilmarnock - query builder strapi, позволяющий отфильтровать выдачу

Главная страница матчцентра

Предустановленная разводящая страница. Имеет по умолчанию связь с блоками виджетов. Может кастомизироваться в случае необходимости. Пример запроса - /match-center/main-template?populate[widgets][populate][manualWidgets][populate]=*&populate[seo][populate]=*$enrich[match-center][key][]=widgets

Last updated