Перейти к основному содержимому

Установка 2ГИС Про

Важное примечание

Все пароли и ключи в этом разделе приведены в иллюстративных целях.

При реальной установке рекомендуется использовать более сложные и надёжные пароли.

1. Перед установкой

  1. Ознакомьтесь с основной информацией:

  2. Выполните предварительные шаги:

    1. Подготовка к установке
    2. Установка сервиса лицензий
    3. Установка сервиса API-ключей
    4. Установка API для работы с картами
    5. Установка API для работы с поиском
    6. Установка API для работы с навигацией
  3. Соберите необходимые данные, заданные или полученные на предыдущих шагах:

    ОбъектПример значенияКак получить значение
    Endpoint реестра Docker для хранения образов сервисовdocker.registry.example.comСм. Получение артефактов установки
    Endpoint S3-совместимого хранилища артефактов установкиartifacts.example.comСм. Получение артефактов установки
    Имя бакета для хранения артефактовonpremise-artifactsСм. Получение артефактов установки
    Идентификатор ключа для доступа к артефактам установкиAKIAIOSFODNN7EXAMPLEСм. Получение артефактов установки
    Секрет ключа для доступа к артефактам установкиwJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEYСм. Получение артефактов установки
    Endpoint сервиса лицензийhttps://licenseСм. Установка сервиса лицензий
    Endpoint MapGL JS APIhttp://mapgl-js-apiСм. Установка API для работы с картами
    Endpoint Catalog APIshttp://catalog-apiСм. Установка API для работы с поиском
    Endpoint API навигацииhttp://navi-frontСм. Установка API для работы с навигацией
    API-ключиMAPGL_KEY
    CATALOG_KEY
    NAVI_KEY
    См. Установка сервиса API-ключей
  4. Убедитесь, что удовлетворены требования к ресурсам, приведенные в Helm-чартах:

    Подробнее о том, как это сделать, см. в документе Системные требования.

    Примечание

    Содержание Helm-чартов, описанное в данном разделе, актуально для последней версии 2ГИС Про (см. Релизы 2ГИС Про). Чтобы изучить параметры для предыдущих версий, откройте нужный values.yaml в GitHub и в списке тегов слева выберите тег Pro-<версия>.

  5. Определите доменные имена для сервиса 2ГИС Про. Например:

    • Доменное имя для API-бэкенда: pro-api.example.com
    • Доменное имя для фронтенда: pro-ui.example.com

2. Подготовьте инфраструктуру

Примечание

Если вместо PostgreSQL и Apache Kafka вы используете аналоги из реестра Минцифры, для инструкций по их настройке обратитесь к официальной документации этих сервисов.

Настройте PostgreSQL

  1. Разместите кластер PostgreSQL с доменным именем pro-postgresql.storage.example.local в приватной сети. Предполагается, что кластер работает на стандартном порту 5432.

  2. Подключитесь к кластеру от имени суперпользователя (обычно это postgres).

  3. Создайте пользователя баз данных и установите пароль для него:

    create user dbuser_pro password '';
  4. Создайте базы данных, принадлежащие этому пользователю:

    create database onpremise_pro owner dbuser_pro;
    create database onpremise_pro_tasks owner dbuser_pro;

Настройте S3-хранилище

  1. Разместите S3-совместимое хранилище с доменным именем pro-s3.storage.example.local в приватной сети. Предполагается, что хранилище работает на стандартном порту 80.

  2. Создайте ключи для подключения к сервису. Запомните реквизиты.

    Пример:

    • Ключ доступа: AKIAIOSFODNN7EXAMPLE.
    • Секретный ключ: wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY.
  3. Определите названия бакетов, которые будут использоваться для сервиса.

    Пример:

    • Бакет с наборами данных, агрегатами и фильтрами (assetsDataBucket): assets.
    • Бакет с наборами данных, агрегатами и фильтрами, созданными пользователем (userAssetsDataBucket): user_assets.
    • Бакет с подготовленными данными слоя (layerDataBucket): layer_data.
    • Бакет для хранения снапшотов (snapshotBucket): snapshots.
    • Бакет для хранения статичных ресурсов (resourcesBucket): resources.

Настройте Elasticsearch

  1. Разместите кластер Elasticsearch с доменным именем pro-elastic.storage.example.local в приватной сети. Предполагается, что кластер работает на порту 9200.

  2. Создайте пользователя для подключения к сервису. Запомните его реквизиты.

    Пример:

    • Имя пользователя: elasticsearch.
    • Пароль: elasticsearch_password.

Настройте Apache Kafka

  1. Разместите кластер Apache Kafka с доменным именем pro-kafka.storage.example.local в приватной сети. Предполагается, что кластер работает на стандартном порту 9092.

  2. Создайте пользователя для подключения к сервису. Запомните его реквизиты.

    Пример:

    • Имя пользователя: kafka.
    • Пароль: kafka_password.
  3. (Рекомендуется) Настройте топики Apache Kafka следующим образом:

    Имя топикаПередаваемые данныеРекомендуемые настройки
    kafka.importTasksTopic.nameЗадачи на импорт пользовательских наборов данных
    • Максимальный размер сообщения — 5 Мб (max.message.bytes: 5242880);
    • Период хранения файла лога — 3 дня (retention.ms: 259200000);
    • Формат сжатия — Gzip (compression.type: gzip).
    kafka.assetDataTopic.nameОбъекты пользовательских наборов данных
    • Максимальный размер сообщения — 5 Мб (max.message.bytes: 5242880);
    • Период хранения файла лога — 5 дней (retention.ms: 432000000);
    • Формат сжатия — Gzip (compression.type: gzip).
    kafka.permissionsTopic.nameСообщения об изменении прав доступа
    • Максимальный размер сообщения — 5 Мб (max.message.bytes: 5242880);
    • Период хранения файла лога — 1 день (retention.ms: 86400000);
    • Формат сжатия — Gzip (compression.type: gzip).
    kafka.eventsTopic.nameРазличные события
    • Максимальный размер сообщения — 20 Мб (max.message.bytes: 20000000);
    • Период хранения файла лога — 1 день (retention.ms: 86400000);
    • Максимальный размер данных для хранения — 500 Мб (retention.bytes: 524288000);
    • Формат сжатия — Gzip (compression.type: gzip).

    Полное описание настроек см. в документации Apache Kafka.

3. Установите 2ГИС Про

Установите Pro API

  1. Создайте конфигурационный файл для Helm. Подробное описание доступных параметров см. здесь.

    Пример файла уже заполнен всеми необходимыми данными, собранными на предыдущих этапах.

    values-pro-api.yaml
    dgctlDockerRegistry: docker.registry.example.com

    dgctlStorage:
    host: artifacts.example.com
    secure: true
    bucket: onpremise-artifacts
    accessKey: AKIAIOSFODNN7EXAMPLE
    secretKey: wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY
    manifest: manifests/pro/1640661259.json
    region: ''
    disablePayloadSigning: false

    api:
    ingress:
    enabled: true
    className: nginx
    annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: 100m
    nginx.ingress.kubernetes.io/proxy-connect-timeout: '120'
    nginx.ingress.kubernetes.io/proxy-read-timeout: '120'
    nginx.ingress.kubernetes.io/proxy-send-timeout: '120'
    nginx.ingress.kubernetes.io/enable-cors: 'true'
    nginx.ingress.kubernetes.io/cors-allow-credentials: 'true'
    nginx.ingress.kubernetes.io/cors-allow-methods: 'GET, PUT, POST, DELETE, PATCH, OPTIONS'
    nginx.ingress.kubernetes.io/cors-allow-headers: 'DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization,x-share-token,x-auth-token,x-brand,pragma'
    nginx.ingress.kubernetes.io/proxy-buffer-size: 256k
    nginx.ingress.kubernetes.io/proxy-buffering: 'on'
    nginx.ingress.kubernetes.io/proxy-buffers-number: '4'
    hosts:
    - host: pro-api.example.com
    paths:
    - path: /
    pathType: Prefix
    tls: []
    # - hosts:
    # - pro-api.example.com
    # secretName: secret.tls

    pod:
    imagePullSecrets: [onpremise-registry-creds]
    resources:
    requests:
    cpu: 400m
    memory: 256M
    limits:
    cpu: 1
    memory: 1024M
    settings:
    licenseKey: ''
    corsOrigins: ''
    auth:
    url: https://keycloak.example.com
    apiKey: ''
    type: openid10
    userInfoEndpoint: realms/Pro/protocol/openid-connect/userinfo
    autoRegisterUsers: true
    shareKeys:
    - ''

    permissions:
    settings:
    auth:
    apiKey: ''
    # Только для новых пользователей
    default_permissions:
    open_pro_ui: true
    assets: ['*']
    territories: ['*']
    add_user_assets:
    allow: true
    quantity: 1000
    file_size: 100
    isochrones: 1000

    license:
    url: 'https://license.svc'

    s3:
    assetsDataBucket: 'pro-assets'
    userAssetsDataBucket: 'pro-userassets'
    layerDataBucket: 'pro-layers'
    snapshotBucket: 'pro-snapshot'
    resourcesBucket: 'pro-resources'

    postgres:
    api:
    rw:
    host: 'pro-postgresql.storage.example.local'
    port: 5432
    name: 'onpremise_pro'
    username: 'dbuser_pro'
    password: ''
    ro: {}
    tasks:
    rw:
    host: 'pro-postgresql.storage.example.local'
    port: 5432
    name: 'onpremise_pro_tasks'
    username: 'dbuser_pro'
    password: ''
    ro: {}
    permissions:
    rw:
    host: 'pro-postgresql.storage.example.local'
    port: 5432
    name: 'onpremise_pro'
    username: 'dbuser_pro'
    password: ''
    ro: {}

    kafka:
    bootstrapServers: 'kafka:9092'
    securityProtocol: SaslPlaintext
    createTopics: true
    sasl:
    mechanism: PLAIN
    username: kafka-user
    password: kafka-password
    assetTopicsReaderGroupId: pro.asset.gr
    importTasksTopic:
    name: pro.tasks
    readerGroupId: pro.import.gr
    assetDataTopic:
    name: pro.assetdata
    permissionsTopic:
    name: pro.permissions
    readerGroupId: pro.permissions.gr
    eventsTopic:
    name: pro.events
    readerGroupId: pro.events.gr
    refreshAssetsIntervalMinutes: 60

    elastic:
    username: ''
    password: ''
    secure: false
    nodes:
    - port: 9200
    host: pro-elastic.storage.example.local

    redis:
    host: 'redis.svc'
    port: '6379'

    catalog:
    url: 'http://catalog-api.svc'
    key: ''

    navi:
    url: 'http://navi-front.svc'
    key: ''

    search:
    url: 'http://search-api.svc'

    assetImporter:
    appName: asset-importer
    repository: 2gis-on-premise/pro-importer
    schedule: 0 18 * * *
    backoffLimit: 2
    successfulJobsHistoryLimit: 3
    failedJobsHistoryLimit: 3
    nodeSelector: {}
    settings:
    maxParallelJobs: 4
    startOnDeploy: true

    Где:

    • dgctlDockerRegistry: endpoint вашего реестра Docker, в котором находятся образы сервисов программного комплекса 2ГИС в формате HOST:PORT.

    • dgctlStorage: настройки доступа к хранилищу артефактов установки.

      • host: endpoint S3-совместимого хранилища артефактов установки в формате HOST:PORT.
      • secure: использовать ли HTTPS для работы с S3-совместимым хранилищем. Значение по умолчанию: false.
      • bucket: имя бакета S3.
      • accessKey: идентификатор ключа для доступа к бакету S3.
      • secretKey: секретный ключ для доступа к бакету S3.
      • manifest: путь до файла с манифестом в формате manifests/pro/1640661259.json. Этот файл содержит в себе описания фрагментов данных, которые требуются сервисам для работы. См. Жизненный цикл артефактов установки.
      • region: регион S3-совместимого хранилища.
      • disablePayloadSigning: отключить ли проверку целостности данных. Если S3-совместимое хранилище не поддерживает AWS Signature Version 4 streaming, значение должно быть true. Значение по умолчанию: false.
    • api: переменные окружения.

      • ingress: конфигурация ресурса Ingress. Адаптируйте приведенную конфигурацию для соответствия используемому вами Ingress. URL, указанный в параметре api.ingress.hosts.host, должен быть доступен извне вашего кластера Kubernetes, чтобы пользователи из приватного сегмента сети могли получить доступ к ресурсам по этому URL.
        • annotations: аннотации Kubernetes, предназначенные для настройки поведения nginx Ingress-контроллера.
      • pod.imagePullSecrets: Kubernetes Secrets для доступа к реестру Docker, в котором находятся образы сервисов программного комплекса 2ГИС.
      • pod.resources: настройки вычислительных ресурсов для сервиса. Чтобы узнать рекомендуемые значения ресурсов, см. Вычислительные ресурсы.
      • settings.licenseKey: ключ лицензии On-Premise.
      • settings.corsOrigins: политика CORS. Если значение пустое, любому источнику разрешается выполнять запросы к сервису Pro API.
      • settings.auth: настройки сервиса аутентификации.
        • url: URL сервиса аутентификации.
        • apiKey: API-ключ для доступа к сервису аутентификации.
        • type: тип аутентификации. Возможные значения: openid10 для протокола OpenId 1.0/OAuth 2.0; urbi для внутреннего протокола Urbi.
        • userInfoEndpoint: путь к endpoint-у Userinfo.
        • autoRegisterUsers: регистрировать ли новых пользователей автоматически при первом входе.
        • shareKeys: один или несколько секретных ключей для генерации защищённых ссылок или валидации уже существующих. Для генерации используется последний указанный в параметре ключ. Длина ключа должна быть не меньше 32 символов.
    • permissions.settings.auth.apiKey: ключ доступа к Permissions API для выполнения авторизованных действий.

    • permissions.settings.default_permissions: настройки доступа по умолчанию для новых пользователей.

      • open_pro_ui: доступ к Pro UI. Значение по умолчанию: true.
      • assets: список идентификаторов системных наборов данных, к которым предоставляется доступ. Значение * предоставляет доступ ко всем наборам данных.
      • territories: список идентификаторов территорий, к которым предоставляется доступ. Значение * предоставляет доступ ко всем территориям.
      • add_user_assets: блок настроек, который управляет возможностью добавления пользовательских наборов данных новыми пользователями.
      • isochrones: максимальное количество зон доступности, которые может создать пользователь.
    • license.url: URL сервиса лицензий.

    • s3: настройки доступа к S3-совместимому хранилищу.

      • assetsDataBucket: имя бакета S3 с подготовленными наборами данных, агрегатами и фильтрами.
      • userAssetsDataBucket: имя бакета S3 с наборами данных, агрегатами и фильтрами, созданными пользователем.
      • layerDataBucket: имя бакета S3 с подготовленными данными слоя.
      • snapshotBucket: имя бакета S3 для хранения снапшотов пошагового обновления данных.
      • resourcesBucket: имя бакета S3 для хранения статичных ресурсов.
    • postgres: настройки PostgreSQL.

      • api: настройки доступа к базе данных onpremise_pro для чтения и записи (postgres.api.rw) или только для чтения (postgres.api.ro).

        • host: имя или IP-адрес хоста.
        • port: номер порта.
        • name: имя базы данных.
        • username: имя пользователя базы данных.
        • password: пароль пользователя базы данных.
      • tasks: настройки доступа к базе данных onpremise_pro_tasks микросервиса для управления фоновыми задачами для чтения и записи (postgres.tasks.rw) или только для чтения (postgres.tasks.ro). Набор параметров аналогичен группе postgres.api, но используется отдельная база данных.

      • permissions: настройки доступа к базе данных onpremise_pro микросервиса для управления правами доступа (Permissions API) для чтения и записи (postgres.permissions.rw) или только для чтения (postgres.permissions.ro). Набор параметров аналогичен группе postgres.api, и используется та же база данных.

    • kafka: настройки Apache Kafka.

      • bootstrapServers: endpoints брокера Kafka. Пример: HOST1:PORT1,HOST2:PORT2.

      • securityProtocol: протокол безопасности Kafka.

      • createTopics: включить автоматическое создание топиков или нет.

      • sasl: настройки SASL.

        • mechanism: механизм SASL.
        • username: имя пользователя SASL.
        • password: пароль пользователя SASL.
      • assetTopicsReaderGroupId: ID потребительской группы Kafka для чтения данных из стриминговых наборов данных.

      • importTasksTopic: настройки топика Kafka для задач импорта пользовательских наборов данных.

        • name: название топика.
        • readerGroupId: ID потребительской группы Kafka для чтения задач импорта.
      • assetDataTopic: настройки топика Kafka для объектов в пользовательских наборах данных.

        • name: название топика.
      • permissionsTopic: настройки топика Kafka для чтения событий, связанных с изменениями прав доступа.

        • name: название топика.
        • readerGroupId: ID потребительской группы Kafka для чтения данных о правах доступа.
      • eventsTopic: настройки топика Kafka для событий.

        • name: название топика.
        • readerGroupId: ID потребительской группы Kafka для чтения событий.
      • refreshAssetsIntervalMinutes: интервал обновления настроек для стриминговых наборов данных в минутах.

    • elastic: настройки Elasticsearch.

      • username: имя пользователя Elasticsearch.
      • password: пароль пользователя Elasticsearch.
      • secure: использовать ли HTTPS для работы с Elasticsearch. Значение по умолчанию: false.
      • nodes[0].host: адрес хоста Elasticsearch.
      • nodes[0].port: номер порта Elasticsearch.
    • redis: настройки Redis.

      • host: адрес хоста Redis. Пример: HTTP(S)://HOST.
      • port: номер порта.
    • catalog: настройки доступа к Catalog APIs.

    • navi: настройки доступа к Isochrone API.

    • search: настройки доступа к Search API.

      • url: URL-адрес Search API. Пример: HTTP(S)://HOST.
    • assetImporter: настройки cron-задания для импорта данных.

      • appName: имя cron-задания для импорта данных.
      • repository: адрес репозитория с Docker-образом.
      • schedule: расписание выполнения задания в cron-формате. Например: */10 * * * *.
      • backoffLimit: количество повторных попыток, после которых задание будет считаться неуспешным.
      • successfulJobsHistoryLimit: ограничение на размер истории выполненных заданий.
      • failedJobsHistoryLimit: ограничение на размер истории невыполненных заданий.
      • nodeSelector: селектор узлов Kubernetes.
      • settings.maxParallelJobs: количество заданий импорта, которые могут быть запущены одновременно.
      • startOnDeploy: импорт данных должен начинаться при установке или обновлении сервиса.
  2. Установите сервис с помощью Helm, используя подготовленный конфигурационный файл values-pro-api.yaml:

    helm upgrade --install --version=VERSION --atomic --wait --timeout 3600s --values ./values-pro-api.yaml pro-api 2gis-on-premise/pro-api

    В параметре --version укажите нужную версию 2ГИС Про. Список версий см. в разделе Релизы 2ГИС Про.

Установите Pro UI

  1. Создайте конфигурационный файл для Helm. Подробное описание доступных параметров см. здесь.

    Пример файла уже заполнен всеми необходимыми данными, собранными на предыдущих этапах.

    values-pro-ui.yaml
    dgctlDockerRegistry: docker.registry.example.com

    imagePullSecrets: [onpremise-registry-creds]

    dgctlStorage:
    host: artifacts.example.com
    secure: true
    bucket: onpremise-artifacts
    accessKey: AKIAIOSFODNN7EXAMPLE
    secretKey: wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY
    manifest: manifests/pro/1640661259.json
    region: ''
    disablePayloadSigning: false

    ui:
    auth:
    sso: true
    secure: true
    appTheme: 2gis
    appLocale: ru_RU
    whiteLabel:
    configUrl: "/static/theme/pro.json"
    appInitialMapCenter: '[37.64, 55.74]'
    publicS3Url: https://artifacts.example.com/
    styles:
    s3Bucket: 'pro-ui-styles'
    configUrl: 'https://artifacts.example.com/pro-ui-styles/config/production/styleConfig.json'
    api:
    url: 'https://pro-api.example.com/'
    mapgl:
    host: 'mapgl-js-api.example.com'
    key: ''
    styleUrl: 'https://artifacts.example.com/pro-ui-styles/styles/default/'
    stylePreview: ''

    resources:
    requests:
    cpu: 300m
    memory: 256Mi
    limits:
    cpu: 1
    memory: 384Mi

    ingress:
    enabled: true
    className: nginx
    hosts:
    - host: pro-ui.example.com
    paths:
    - path: /
    pathType: Prefix
    tls: []
    # - hosts:
    # - pro-ui.example.com
    # secretName: secret.tls

    stylesImporter:
    startOnDeploy: true

    Где:

    • dgctlDockerRegistry: endpoint вашего реестра Docker, в котором находятся образы сервисов программного комплекса 2ГИС в формате HOST:PORT.

    • imagePullSecrets: Kubernetes Secrets для доступа к реестру Docker, в котором находятся образы сервисов программного комплекса 2ГИС.

    • dgctlStorage: настройки доступа к хранилищу артефактов установки.

      • host: endpoint S3-совместимого хранилища артефактов установки в формате HOST:PORT.
      • secure: использовать ли HTTPS для работы с S3-совместимым хранилищем. Значение по умолчанию: false.
      • bucket: имя бакета S3.
      • accessKey: идентификатор ключа для доступа к бакету S3.
      • secretKey: секретный ключ для доступа к бакету S3.
      • manifest: путь до файла с манифестом в формате manifests/pro/1640661259.json. Этот файл содержит в себе описания фрагментов данных, которые требуются сервисам для работы. См. Жизненный цикл артефактов установки.
      • region: регион S3-совместимого хранилища.
      • disablePayloadSigning: отключить ли проверку целостности данных. Если S3-совместимое хранилище не поддерживает AWS Signature Version 4 streaming, значение должно быть true. Значение по умолчанию: false.
    • ui: настройки приложения.

      • auth: настройки аутентификации.

        • sso: включить ли аутентификацию по технологии единого входа (SSO). Значение по умолчанию: true.
        • secure: использовать ли HTTPS для работы с аутентификацией. Значение по умолчанию: true.
      • appTheme: брендирование внутри приложения.

      • appLocale: язык приложения по умолчанию.

      • whiteLabel.configUrl: URL конфигурационного файла для настройки пользовательского логотипа, фавиконки и других. Пример: /static/theme/pro.json.

      • appInitialMapCenter: координаты карты по умолчанию в формате [lng, lat]. Пример: [37.64, 55.74] для Москвы.

      • publicS3Url: URL публичного S3-совместимого хранилища, в котором будут размещены стили.

      • styles: настройки стилей карты.

        • s3Bucket: имя бакета S3 для стилей. Бакет должен быть публичным и иметь настроенный CORS.
        • configUrl: URL конфигурационного файла для стилей. Пример: https://artifacts.example.com/pro-ui-styles/config/production/styleConfig.json.
      • api.url: базовый URL для Pro API со слэшем в конце. Пример: HTTP(S)://HOST/.

      • mapgl: настройки сервиса MapGL JS API.

        • host: хост сервиса MapGL JS API без протокола и без слэша в конце.
        • key: ключ доступа для сервиса MapGL JS API.
        • styleUrl: путь к директории с конфигурационным файлом (styles.json) для управления стилями карты. Пример: https://artifacts.example.com/pro-ui-styles/styles/default/.
        • stylePreview: URL для миниатюры изображения, которая будет отображаться в менеджере стилей карты для стиля по умолчанию.
    • resources: настройки вычислительных ресурсов для сервиса. Чтобы узнать рекомендуемые значения ресурсов, см. Вычислительные ресурсы.

    • ingress: конфигурация ресурса Ingress. Адаптируйте приведенную конфигурацию для соответствия используемому вами Ingress. URL, указанный в параметре ingress.hosts.host, должен быть доступен извне вашего кластера Kubernetes, чтобы пользователи из приватного сегмента сети могли получить доступ к ресурсам по этому URL.

    • stylesImporter.startOnDeploy: включить ли импорт собственных стилей для Про при установке или обновлении сервиса.

  2. Установите сервис с помощью Helm, используя подготовленный конфигурационный файл values-pro-ui.yaml:

    helm upgrade --install --version=VERSION --atomic --values ./values-pro-ui.yaml pro-ui 2gis-on-premise/pro-ui

    В параметре --version укажите нужную версию 2ГИС Про. Список версий см. в разделе Релизы 2ГИС Про.

4. Проверьте работоспособность установленных сервисов

Выполните запрос с использованием cURL или аналогичного инструмента:

curl -X 'GET' \
'https://PRO-API/items/1,14,164' \
-H 'accept: application/json' \
-H 'Authorization: Bearer TOKEN' # Или см. settings.auth.apiKey

Для авторизации используйте Bearer-токен или см. установленное значение параметра settings.auth.apiKey в конфигурационном файле Pro API.

Ответ должен иметь код состояния HTTP 200 и содержать список элементов в формате JSON.

5. Настройте аутентификацию пользователей

Настройте внешнего поставщика OpenID Connect для аутентификации конечных пользователей в 2ГИС Про.

Что дальше?