Как настроить уведомления с помощью вебхуков

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

Что такое веб-перехватчик?

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

Чтобы настроить уведомления с помощью веб-перехватчиков, выполните следующие действия в интерфейсе Edge Management или с помощью API управления и монетизации:

  1. Добавьте веб-хуки, которые определяют обработчики обратного вызова для событий уведомлений, используя интерфейс или API.
  2. Настройте обработчик обратного вызова.
  3. Настройте уведомление для тарифа с гибкими условиями отмены в интерфейсе или с помощью API.

Управление вебхуками

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

Как управлять вебхуками с помощью интерфейса

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

Как работать со страницей "Вебхуки"

Перейдите на страницу "Веб-хуки", как описано ниже.

Edge

Чтобы перейти на страницу веб-перехватчиков в интерфейсе Edge:

  1. Войдите в аккаунт на сайте apigee.com/edge.
  2. На панели навигации слева выберите Публикация > Монетизация > Веб-хуки.

Откроется страница "Веб-хуки".

Как показано на рисунке, на странице Webhooks (Веб-хуки) можно:

Классическая версия Edge (частное облако)

Чтобы открыть страницу веб-перехватчиков в классическом интерфейсе Edge:

  1. Войдите в http://ms-ip:9000, где ms-ip – это IP-адрес или DNS-имя узла сервера управления.
  2. Выберите Администратор > Веб-хуки.

Откроется страница "Веб-перехватчики".

На странице "Веб-хуки" можно:

Как добавить вебхук с помощью интерфейса

Чтобы добавить веб-перехватчик с помощью интерфейса:

  1. Откройте страницу вебхуков.
  2. Нажмите + Вебхук.
  3. Введите следующую информацию (все поля обязательны для заполнения).
    Поле Описание
    Название Название веб-перехватчика.
    URL URL обработчика обратного вызова, который будет вызываться при срабатывании уведомления о событии. Подробнее о том, как настроить обработчик обратного вызова…
  4. Нажмите Сохранить.

Веб-хук будет добавлен в список и включен по умолчанию.

Как изменить вебхук с помощью интерфейса

Чтобы изменить веб-перехватчик с помощью интерфейса:

  1. Откройте страницу вебхуков.
  2. Наведите указатель на нужный веб-перехватчик и нажмите на значок с тремя точками в меню действий.
  3. При необходимости измените поля веб-перехватчика.
  4. Нажмите Обновить вебхук.

Как включить или отключить веб-перехватчик с помощью интерфейса

Чтобы включить или отключить веб-перехватчик с помощью интерфейса:

  1. Откройте страницу вебхуков.
  2. Наведите курсор на веб-перехватчик и включите или отключите его с помощью переключателя статуса.

Как удалить вебхук с помощью интерфейса

Чтобы удалить веб-перехватчик с помощью интерфейса:

  1. Откройте страницу вебхуков.
  2. Наведите указатель на веб-перехватчик, который нужно удалить, и нажмите .

Веб-хук будет удален из списка.

Как управлять вебхуками с помощью API

Добавлять веб-хуки и управлять ими с помощью API можно так, как описано в следующих разделах.

Как посмотреть все веб-хуки с помощью API

Чтобы посмотреть все вебхуки, отправьте GET-запрос по адресу /mint/organizations/{org_name}/webhooks. Пример:

curl -X GET "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks" \
  -H "Content-Type: application/json " \
  -u email:password

Ниже приведен пример ответа:

{
  "totalRecords": 2,
  "webhooks": [
    {
      "created": 1460162656342,
      "enabled": false,
      "id": "21844a37-d26d-476c-93ed-38f3a4b24691",
      "name": "webhook1",
      "postUrl": "http://mycompany.com/callbackhandler1",
      "updated": 1460162656342,
      "updatedBy": "joe@example.com"
    },
        {
      "created": 1460138724352,
      "createdBy": "joe@example.com",
      "enabled": true,
      "id": "a39ca777-1861-49cf-a397-c9e92ab3c09f",
      "name": "webhook2",
      "postUrl": "http://mycompany.com/callbackhandler2",
      "updated": 1460138724352,
      "updatedBy": "joe@example.com"
    }

  ]
}

Как посмотреть вебхук с помощью API

Чтобы посмотреть один веб-хук, отправьте GET-запрос по адресу /mint/organizations/{org_name}/webhooks/{webhook_id}.

Пример:

curl -X GET "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/21844a37-d26d-476c-93ed-38f3a4b24691" \
  -H "Content-Type: application/json " \
  -u email:password

Ниже приведен пример ответа.

{
   "created": 1460162656342,
   "enabled": false,
   "id": "21844a37-d26d-476c-93ed-38f3a4b24691",
   "name": "webhook1",
   "postUrl": "http://mycompany.com/callbackhandler1",
   "updated": 1460162656342,
   "updatedBy": "joe@example.com"
 }

Как добавить вебхук с помощью API

Добавьте вебхук, отправив запрос POST на адрес /mint/organizations/{org_name}/webhooks. Вам нужно передать название вебхука и URL обработчика обратного вызова, который будет вызываться при срабатывании уведомления о событии.

Например, следующий код создает веб-перехватчик с названием webhook3 и назначает ему значение callbackhandler3:

curl -X POST "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks"
  -H "Content-Type: application/json "
  -d '{
    "name": "webhook3",
    "postURL": "http://mycompany.com/callbackhandler3"
    }' \
    -u email:password

Ниже приведен пример ответа.

{
  "created": 1460385534555,
  "createdBy": "joe@example.com",
  "enabled": false,
  "id": "0a07eb1f-f485-4539-8beb-01be449699b3",
  "name": "webhook3",
  "orgId": "myorg",
  "postUrl": "http://mycompany.com/callbackhandler3",
  "updated": 1460385534555,
  "updatedBy": "joe@example.com"
}

Как изменить вебхук с помощью API

Чтобы изменить вебхук, отправьте запрос PUT на адрес /mint/organizations/{org_name}/webhooks/{webhook_id}. Передайте обновления в теле запроса.

Например, следующий код обновляет обработчик обратного вызова, связанный с webhook1:

curl -X PUT "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3" \
  -H "Content-Type: application/json " \
  -d '{
    "postURL": "http://mycompany.com/callbackhandler4"
  }' \
  -u email:password

Ниже приведен пример ответа.

{
  "created": 1460385534555,
  "enabled": false,
  "id": "0a07eb1f-f485-4539-8beb-01be449699b3",
  "name": "webhook3",
  "orgId": "myorg",
  "postUrl": "http://mycompany.com/callbackhandler4",
  "updated": 1460385534555,
  "updatedBy": "joe@example.com"
}

Включение или отключение вебхука с помощью API

Чтобы включить или отключить вебхук, отправьте запрос POST на адрес /mint/organizations/{org_name}/webhooks/{webhook_id}, как при обновлении вебхука, и задайте для атрибута enabled в теле запроса значение true или false соответственно. Если вы отключите веб-перехватчик, он не будет активироваться при возникновении события.

Например, следующий код включает webhook3:

curl -X POST "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3" \
  -H "Content-Type: application/json " \
  -d '{
    "enabled": "true"
  }' \
  -u email:password

Ниже приведен пример ответа.

{
  "created": 1460385534555,
  "enabled": true,
  "id": "0a07eb1f-f485-4539-8beb-01be449699b3",
  "name": "webhook3",
  "orgId": "myorg",
  "postUrl": "http://mycompany.com/callbackhandler4",
  "updated": 1460385534555,
  "updatedBy": "joe@example.com"
}

Как удалить вебхук с помощью API

Чтобы удалить веб-перехватчик, отправьте запрос DELETE на адрес /mint/organizations/{org_name}/webhooks/{webhook_id}.

Чтобы указать, нужно ли принудительно удалять веб-перехватчик, если есть выполняющиеся процессы, задайте для параметра запроса forceDelete значение true или false. Параметр запроса forceDelete включен (true) по умолчанию.

Например, следующий код удаляет параметр webhook3:

curl -X DELETE "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/21844a37-d26d-476c-93ed-38f3a4b24691" \
  -H "Content-Type: application/json " \
  -u email:password

Как настроить обработчик обратного вызова

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

{
        "orgName": "{org_id}",
        "developerEmail": "{dev_email}",
        "developerFirstName": "{first_name}",
        "developerLastName": "{last_name}",
        "companyName": "{company_name}",
        "applicationName": "{app_name}",
        "packageName": "{api_package_name}",
        "packageId": "{api_package_id}",
        "ratePlanId": "{rateplan_id}",
        "ratePlanName": "{rateplan_name}",
        "ratePlanType": "{rateplan_type}",
        "developerRatePlanQuotaTarget": {quota_target},
        "quotaPercentUsed": {percentage_quota_used},
        "ratePlanStartDate": {rateplan_startdate}, 
        "ratePlanEndDate": {rateplan_enddate},
        "nextBillingCycleStartDate": {next_billing_cycle_startdate},
        "products": ["{api_product_name}","{api_product_name}"],
        "developerCustomAttributes": [],
        "triggerTime": {trigger_time},
        "triggerReason": "{trigger_reason}",
        "developerQuotaResetDate": "{devquota_resetdate}"
}

Как настроить уведомления для тарифа с регулируемой ценой

Настройте уведомления с помощью веб-перехватчиков для тарифа с гибкими условиями, используя интерфейс или API.

Как настроить уведомления для тарифа с регулируемой ценой в интерфейсе

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

Как открыть диалоговое окно уведомлений для тарифа с возможностью корректировки

Откройте диалоговое окно уведомлений для плана с регулируемой ставкой, как описано ниже.

Edge

Чтобы открыть диалоговое окно уведомлений с помощью интерфейса Edge:

  1. Создайте и опубликуйте план с регулируемой частотой уведомлений, как описано в разделе Как указать сведения о плане с регулируемой частотой уведомлений.
  2. Чтобы перейти на страницу "Тарифные планы", на панели навигации слева выберите Опубликовать > Монетизация > Тарифные планы.
  3. Наведите указатель на опубликованный план с регулируемой частотой уведомлений, чтобы посмотреть доступные действия.
  4. Нажмите + Уведомить.

    Откроется диалоговое окно "Уведомления".

    Примечание. Чтобы действие "Уведомить" показывалось, тарифный план должен быть опубликован.

Классическая версия Edge (частное облако)

Чтобы перейти на страницу уведомлений:

  1. Создайте план с регулируемой частотой уведомлений, как описано в разделе Как указать сведения о плане с регулируемой частотой уведомлений.
  2. Чтобы посмотреть тарифные планы, выберите Опубликовать > Пакеты.
  3. Нажмите +Уведомить в столбце "Действия" рядом с нужным тарифным планом.

    Откроется диалоговое окно "Уведомления".

Как добавить уведомления для тарифа с регулируемой ценой с помощью интерфейса

Чтобы добавить уведомления для тарифа с регулируемой ценой в интерфейсе:

  1. Откройте диалоговое окно уведомлений.
  2. В разделе Интервалы уведомлений задайте условие уведомления, указав процент от целевого количества транзакций, при достижении которого должно срабатывать уведомление. В частности:
    • Чтобы задать точное значение в процентах, введите его в поле От % и оставьте поле До % пустым.
    • Чтобы задать диапазон в процентах, введите начальное и конечное значения в полях От % и До % соответственно, а также шаг в поле Шаг %. По умолчанию уведомления отправляются с шагом 10 % в указанном диапазоне.

    Поле Notify At обновляется, чтобы отражать процент целевого числа транзакций, которые будут вызывать событие.

  3. Чтобы задать дополнительные условия уведомлений, нажмите +Добавить и повторите шаг 4.
  4. В разделе Веб-хуки задайте действие для уведомлений, выбрав один или несколько веб-хуков для обработки обратных вызовов при срабатывании уведомлений.
  5. Нажмите Создать уведомление.

Как изменить уведомления для тарифа с регулируемой ценой с помощью интерфейса

Чтобы изменить уведомления для плана с регулируемой ставкой, выполните следующие действия:

  1. Откройте диалоговое окно уведомлений.
  2. Нажмите +Уведомить в столбце "Действия" рядом с нужным тарифным планом.
  3. Нажмите Изменить.
  4. Измените значения, если необходимо.
  5. Нажмите Сохранить уведомление.

Как удалить уведомления о тарифном плане с регулируемой ставкой с помощью интерфейса

Чтобы удалить условие и действие для уведомления:

  1. Откройте диалоговое окно уведомлений.
  2. Нажмите +Уведомить в столбце "Действия" рядом с нужным тарифным планом.
  3. Нажмите Удалить уведомление.

Как настроить уведомления о тарифе с регулируемой ценой с помощью API

Чтобы настроить уведомление для тарифа с возможностью корректировки с помощью API, следуйте инструкциям в разделе Как управлять условиями и действиями уведомлений с помощью API и используйте атрибуты, описанные в этом разделе.

Чтобы задать условие уведомления (notificationCondition), используйте следующие значения атрибутов. Подробнее о свойствах конфигурации для условий уведомлений…

Атрибут Значение
RATEPLAN Идентификатор плана с настраиваемой частотой уведомлений.
PUBLISHED TRUE, чтобы указать, что план с регулируемой частотой уведомлений должен быть опубликован.
UsageTarget Процент от целевого количества транзакций, при достижении которого вы хотите получать уведомления.

Этот атрибут позволяет уведомлять разработчиков, когда они приближаются к целевому количеству транзакций или достигают его в рамках приобретенного тарифного плана с регулируемой частотой уведомлений. Например, если разработчик приобрел тарифный план с настраиваемой частотой уведомлений и задал целевое количество транзакций, равное 1000, вы можете уведомить его, когда будет достигнуто 800 транзакций (80% от целевого количества), 1000 транзакций (100%) или 1500 транзакций (150%).

  • Чтобы задать точный процент, введите %= n. Например, %= 80 будет отправлять уведомления, когда процент целевого количества транзакций достигнет 80%.
  • Чтобы задать диапазон в процентах, введите начальное и конечное значения, а также величину шага в следующем формате: %= start to end by n. Например, если указать значение %= 80 to 100 by 10, уведомления будут отправляться, когда процент целевого количества транзакций достигнет 80%, 90 % и 100%.

Чтобы настроить действие уведомления, в разделе actions задайте следующие значения: Подробнее о свойствах конфигурации для действий с уведомлениями…

Атрибут Значение
actionAttribute WEBHOOK, чтобы активировать вебхук.
value Идентификатор веб-хука, который вы определили в предыдущем разделе Создание веб-хуков с помощью API.

Ниже приведен пример того, как создать условие уведомления, которое активирует веб-перехватчик, когда процент целевого количества транзакций достигает 80%, 90%, 100%, 110 % и 120%.

{
    "notificationCondition": [
      {
        "attribute": "RATEPLAN",
        "value": "123456"
      },
      {
        "attribute": "PUBLISHED",
        "value": "TRUE"
      },
      {
        "attribute": "UsageTarget",
        "value": "%= 80 to 120 by 10"
      }
    } 
    ],
   "actions": [{
          "actionAttribute": "WEBHOOK",
          "value": "b0d77596-142e-4606-ae2d-f55c3c6bfebe",
        }]
  }

Информацию о том, как посмотреть, изменить или удалить условие и действие уведомления, можно найти в следующих статьях:

Коды ответов вебхуков

Ниже приведены коды ответов webhook и их интерпретация системой.

Код ответа Описание
2xx Выполнено
5xx

Не удалось выполнить запрос. Система повторит запрос до трех раз с интервалом в пять минут.

Примечание. Время ожидания чтения и подключения для запросов webhook составляет 3 секунды, поэтому запросы могут завершаться неудачно.

Other response Не удалось выполнить запрос. Система не будет повторять запрос.