Управление пакетами продуктов API

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

Объедините один или несколько API-продуктов в единый монетизированный контейнер, называемый пакетом API-продуктов, как описано в следующих разделах.

Что такое пакет продуктов API?

Пакет API-продуктов — это набор API-продуктов, который представляется разработчикам как единое целое и обычно связан с одним или несколькими тарифными планами для монетизации. Вы можете создать несколько пакетов API-продуктов и включить в каждый из них один или несколько API-продуктов. Вы можете поместить один и тот же API-продукт или продукты в разные пакеты и связать их с разными (или одинаковыми) тарифными планами.

Разработчики могут зарегистрировать свои приложения для использования пакета продуктов API только путем приобретения одного из действующих тарифных планов. Пакет продуктов API становится видимым для разработчиков только после добавления и публикации (в качестве общедоступного) тарифного плана для этого пакета (с датой начала действия текущей или будущей даты), как описано в разделе «Управление тарифными планами» . После добавления и публикации тарифного плана разработчики, вошедшие в ваш портал разработчиков, смогут выбрать пакет продуктов API и выбрать тарифный план. В качестве альтернативы вы можете принять тарифный план для разработчика, используя API управления. Для получения дополнительной информации см. раздел «Приобретение опубликованных тарифных планов с помощью API» .

После добавления API-продукта в пакет API-продуктов может потребоваться настройка цен для этого API-продукта. Это необходимо сделать только в том случае, если выполняются все следующие условия:

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

Минимальная и максимальная цены отображаются в подробной информации о пакете продуктов API.

Изучение страницы «Комплекты товаров»

Перейдите на страницу «Комплекты товаров», как описано ниже.

Край

Чтобы получить доступ к странице пакетов продуктов API через пользовательский интерфейс Edge, выберите «Публикация» > «Монетизация» > «Пакеты продуктов» в левой панели навигации.

Как показано на предыдущем рисунке, страница «Комплекты товаров» позволяет вам:

Вы можете управлять продуктами API в составе пакета продуктов или удалять пакет продуктов (если тарифные планы не определены) только с помощью API.

Классический Edge (частное облако)

Чтобы получить доступ к странице пакетов API с помощью классического интерфейса Edge, выберите «Опубликовать» > «Пакеты» в верхней панели навигации.

Страница «Пакеты API» позволяет вам:

  • Просмотрите сводную информацию по всем пакетам API, включая входящие в них продукты API и соответствующие тарифные планы.
  • Добавить пакет API
  • Редактировать пакет API
  • Добавление и управление тарифными планами
  • Переключите параметр доступа к тарифному плану (публичный/приватный).
  • Отфильтруйте список пакетов

Вы можете управлять продуктами API в рамках пакета API или удалять пакет API (если тарифные планы не определены) только с помощью API.

Добавление комплекта товаров

Чтобы добавить пакет продуктов API:

  1. На странице «Пакеты продуктов» нажмите кнопку «+ API Product Bundle» .
  2. Введите название для пакета продуктов API.
  3. В поле «Добавить продукт» введите название продукта API.

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

  4. Повторите шаг 3, чтобы добавить дополнительные названия продуктов API.
  5. Для каждого добавляемого API-продукта настройте политику записи транзакций .
  6. Нажмите «Сохранить комплект товаров» .

Редактирование комплекта товаров

Чтобы отредактировать комплект товара:

  1. На странице «Наборы товаров» щелкните в строке того набора товаров, который хотите отредактировать.

    Отображается панель с описанием комплекта товаров.

  2. При необходимости отредактируйте поля, относящиеся к комплектации товара.

    Дополнительную информацию см. в разделе «Настройка политики записи транзакций» .

  3. Нажмите «Обновить пакет продуктов» .

Управление пакетами продуктов API с помощью API

В следующих разделах описывается, как управлять пакетами продуктов API с помощью API.

Создание пакета продуктов API с использованием API

Для создания пакета продуктов API отправьте POST-запрос на адрес /organizations/ {org_name} /monetization-packages . При отправке запроса необходимо:

  • Определите, какие API-продукты следует включить в пакет API-продуктов.
  • Укажите название и описание для пакета продуктов API.
  • Установите индикатор состояния для пакета продуктов API. Индикатор состояния может принимать одно из следующих значений: CREATED, ACTIVE, INACTIVE. В настоящее время указанное вами значение индикатора состояния сохраняется в пакете продуктов API, но не используется ни для каких целей.

При желании вы можете указать организацию.

Список параметров, доступных через API, см. в свойствах конфигурации пакета продуктов API .

Например:

$ curl -H "Content-Type:application/json" -X POST -d \
'{
     "description": "payment messaging package",
     "displayName": "Payment Messaging Package",
     "name": "Payment Messaging Package",
     "organization": { "id": "{org_name}" },
     "product": [
       { "id": "messaging" },
       { "id": "payment" }
     ],
     "status": "CREATED"
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages" \
-u email:password

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

{
   "description" : "payment messaging package",
   "displayName" : "Payment Messaging Package",
   "id" : "payment_messaging_package",
   "name" : "Payment Messaging Package",
   "organization" : {
     "id" : "{org_name}",
     "separateInvoiceForFees" : false
   },
   "product" : [ {
     "customAtt1Name" : "user",
     "description" : "Messaging",
     "displayName" : "Messaging",
     "id" : "messaging",
     "name" : "messaging",
     "organization" : {
       "id" : "{org_name}",
       "separateInvoiceForFees" : false
     },
     "status" : "CREATED"
   }, {
     "customAtt1Name" : "user",
     "description" : "Payment",
     "displayName" : "Payment",
     "id" : "payment",
     "name" : "payment",
     "organization" : {
       "id" : "{org_name}",
       "separateInvoiceForFees" : false
     },
     "status" : "CREATED"
   }],
   "status" : "CREATED"
 }

Обратите внимание, что ответ содержит дополнительную информацию о продуктах API и любых пользовательских атрибутах, указанных для этих продуктов API. (Пользовательские атрибуты указываются при создании продукта API.) Пользовательские атрибуты для продукта API могут учитываться в различных тарифных планах. Например, если вы настроили тарифный план, в рамках которого вы взимаете плату с разработчика за каждую транзакцию, вы можете установить тариф для этого плана на основе пользовательского атрибута, такого как количество байтов, передаваемых в транзакции.

Управление продуктами API в пакете продуктов API с помощью API

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

Добавление продукта API в пакет продуктов API

Чтобы добавить API-продукт в пакет API-продуктов, отправьте POST-запрос по адресу organizations/ {org_name} /monetization-packages/ {package_id} /products/ {product_id} , где {org_name} — это название вашей организации, {package_id} — название пакета API-продуктов, а {product_id} — идентификатор API-продукта.

Например:

$ curl -H "Accept:application/json" -X POST -d \
'{}'\
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}" \
-u email:password

Добавление API-продукта в пакет API-продуктов с тарифными планами, специфичными для каждого API-продукта.

Чтобы добавить API-продукт в пакет API-продуктов, для которого определен один или несколько тарифных планов, специфичных для данного API-продукта (тарифная карта или распределение дохода), отправьте POST-запрос по адресу organizations/ {org_name} /monetization-packages/ {package_id} /products/ {product_id} , где {org_name} — это название вашей организации, {package_id} — название пакета API-продуктов, а {product_id} — идентификатор API-продукта.

В теле запроса необходимо указать сведения о тарифном плане для нового продукта API. За исключением массива ratePlanRates , значения тарифных планов должны совпадать со значениями, указанными для всех остальных продуктов API. Дополнительную информацию об атрибутах тарифных планов, которые можно определить, см. в разделе «Свойства конфигурации тарифных планов» .

Например:

$ curl -H "Content-Type:application/json" -X POST -d \
'{
    "ratePlan": [ 
        {
            "id": "mypackage_rateplan1",
            "ratePlanDetails": [
                {
                    "currency": {
                        "id": "usd"
                    },
                    "duration": 1,
                    "durationType": "MONTH",
                    "meteringType": "UNIT",
                    "organization" : {
                        "id": "{org_name}",
                    "paymentDueDays": "30",
                    "ratePlanRates": [
                        {
                            "rate": "1.99",
                            "startUnit": "0",
                            "type": "RATECARD"
                        }
                    ],
                    "ratingParameter": "VOLUME",
                    "type": "RATECARD"
                }
            ]
        }
    ]
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}" \
-u email:password

Удаление продукта API из пакета продуктов API

Чтобы удалить API-продукт из пакета API-продуктов, отправьте DELETE-запрос по адресу organizations/ {org_name} /monetization-packages/ {package_id} /products/ {product_id} , где {org_name} — это название вашей организации, {package_id} — название пакета API-продуктов, а {product_id} — идентификатор API-продукта.

Например:

$ curl -H "Accept:application/json" -X DELETE \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}" \
-u email:password

Просмотр пакетов продуктов API с помощью API

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

Просмотр конкретного пакета продуктов API: Чтобы получить конкретный пакет продуктов API, отправьте GET-запрос по адресу /organizations/ {org_name} /monetization-packages/ {package_id} , где {package_id} — это идентификатор пакета продуктов API (ID возвращается в ответе при создании пакета продуктов API). Например:

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/payment_messaging_package" \
-u email:password

Просмотр всех пакетов продуктов API: Чтобы получить все пакеты продуктов API для организации, отправьте GET-запрос по адресу /organizations/ {org_name} /monetization-packages . Например:

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages" \
-u email:password

Для фильтрации результатов можно передать следующие параметры запроса:

Параметр запроса Описание
all Флаг, определяющий, следует ли возвращать все пакеты продуктов API. Если установлено значение false , количество возвращаемых пакетов продуктов API на странице определяется параметром запроса size . По умолчанию — false .
size Количество пакетов продуктов API, возвращаемых на странице. По умолчанию — 20. Если параметр запроса all установлен в true , этот параметр игнорируется.
page Номер страницы, которую вы хотите вернуть (если контент постраничный). Если параметр запроса all установлен в true , этот параметр игнорируется.

Ответ на запрос просмотра всех пакетов продуктов API в организации должен выглядеть следующим образом (показана только часть ответа):

{
  "monetizationPackage" : [ {
    "description" : "payment messaging package",
    "displayName" : "Payment Messaging Package",
    "id" : "payment_messaging_package",
    "name" : "Payment Messaging Package",
    "organization" : {
      ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "description" : "Messaging",
      "displayName" : "Messaging",
      "id" : "messaging",
      "name" : "messaging",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    }, {
      "customAtt1Name" : "user",
      "description" : "Payment",
      "displayName" : "Payment",
      "id" : "payment",
      "name" : "payment",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    } ],
    "status" : "CREATED"
  }, {
    "description" : "Communications",
    "displayName" : "Communications",
    "id" : "communications",
    "name" : "Communications",
    "organization" : {
      ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "description" : "Location",
      "displayName" : "Location",
      "id" : "location",
      "name" : "location",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    }, {
      "customAtt1Name" : "user",
      "description" : "Messaging",
      "displayName" : "Messaging",
      "id" : "messaging",
      "name" : "messaging",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    } ],
    "status" : "CREATED"
  }, {
    "description" : "Payment",
    "displayName" : "Payment",
    "id" : "payment",
    "name" : "Payment",
    "organization" : {
     ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "description" : "Payment",
      "displayName" : "Payment",
      "id" : "payment",
      "name" : "payment",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    } ],
    "status" : "CREATED"
  } ],
  "totalRecords" : 3
}

Просмотр пакетов продуктов API с транзакциями: Чтобы получить пакеты продуктов API с транзакциями за заданный диапазон дат, отправьте GET-запрос по адресу /organizations/ {org_name} /packages-with-transactions . При отправке запроса необходимо указать в качестве параметров запроса начальную и конечную даты диапазона дат. Например, следующий запрос извлекает пакеты продуктов API с транзакциями за август 2013 года.

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/packages-with-transactions?START_DATE=2013-08-01&END_DATE=2013-08-31" \
-u email:password

Ответ должен выглядеть примерно так (показана только часть ответа):

{
  "monetizationPackage" : [ {
    "description" : "Payment Package",
    "displayName" : "Payment Package",
    "id" : "payment_package",
    "name" : "Payment Package",
    "organization" : {
      ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "customAtt2Name" : "response size",
      "customAtt3Name" : "content-length",
      "description" : "payment api product",
      "displayName" : "payment",
      "id" : "payment",
      "name" : "payment",
      "organization" : {
        ...
      },
      "status" : "CREATED",
      "transactionSuccessCriteria" : "status == 'SUCCESS'"
    } ],
    "status" : "CREATED"
  }, {
    "description" : "messaging package",
    "displayName" : "Messaging Package",
    "id" : "messaging_package",
    "name" : "Messaging Package",
    "organization" : {
      ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "customAtt2Name" : "response size",
      "customAtt3Name" : "content-length",
      "description" : "messaging api product",
      "displayName" : "messaging",
      "id" : "messaging",
      "name" : "messaging",
      "organization" : {
        ...
      },
      "status" : "CREATED",
      "transactionSuccessCriteria" : "status == 'SUCCESS'"
    } ],
    "status" : "CREATED"
  },
     ...
  } ]
}

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

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

  • /organizations/ {org_name} /developers/ {developer_id} /monetization-packages , где {developer_id} — это идентификатор (адрес электронной почты) разработчика.
  • /organizations/ {org_name} /companies/ {company_id} /monetization-packages , где {company_id} — идентификатор компании.

При отправке запроса вы можете дополнительно указать следующие параметры запроса:

Параметр запроса Описание По умолчанию
current Флаг, указывающий, следует ли получать только активные пакеты продуктов API ( current=true ) или все пакеты ( current=false ). Все тарифные планы в активном пакете считаются доступными. current=false
allAvailable Флаг, указывающий, следует ли получать все доступные пакеты продуктов API ( allAvailable=true ) или только пакеты продуктов API, доступные специально для разработчика или компании ( allAvailable=false ). Под «всеми доступными» подразумеваются пакеты продуктов API, доступные указанному разработчику или компании, а также другим разработчикам или компаниям. Пакеты продуктов API, доступные специально для компании или разработчика, содержат только тарифные планы, доступные исключительно этой компании или разработчику. allAvailable=true

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

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/developers/dev1@myorg.com/monetization-packages" \
-u email:password

Следующий запрос извлекает только активные пакеты API, принимаемые конкретной компанией:

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/companies/myCompany/monetization-packages?current=true" \
-u email:password

Удаление пакета продуктов API с помощью API

Удалить пакет продуктов API можно только в том случае, если для него не определены тарифные планы.

Чтобы удалить пакет продуктов API, для которого не определены тарифные планы, отправьте запрос DELETE по адресу organizations/ {org_name} /monetization-packages/ {package_id} , где {org_name} указывает название вашей организации, а {package_id} — название пакета продуктов API.

Например:

$ curl -H "Accept:application/json" -X DELETE \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/{package_id}" \
-u email:password

Свойства конфигурации пакета продуктов API для API

Следующие параметры конфигурации пакета продуктов API доступны через API:

Имя Описание По умолчанию Необходимый?
description

Описание пакета продуктов API.

Н/Д Да
displayName

Название, которое будет отображаться для пакета продуктов API (например, в каталоге пакетов API).

Н/Д Да
name

Название пакета продуктов API.

Н/Д Да
organization

Организация, содержащая пакет продуктов API.

Н/Д Нет
product

Массив из одного или нескольких продуктов, входящих в пакет продуктов API.

Н/Д Нет
status

Индикатор состояния для пакета продуктов API. Индикатор состояния может принимать одно из следующих значений: CREATED, ACTIVE, INACTIVE.

Н/Д Да