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

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

Объедините один или несколько продуктов 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 на странице «Наборы продуктов» .
  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. Индикатор статуса может иметь одно из следующих значений: СОЗДАНО, АКТИВНО, НЕАКТИВНО. В настоящее время указанное вами значение индикатора состояния сохраняется в пакете продуктов 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 (идентификатор возвращается в ответе при создании пакета продукта 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 query установлено значение 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

Просмотрите пакеты продуктов 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. Индикатор статуса может иметь одно из следующих значений: СОЗДАНО, АКТИВНО, НЕАКТИВНО.

Н/Д Да
,

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

Объедините один или несколько продуктов 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 на странице «Наборы продуктов» .
  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. Индикатор статуса может иметь одно из следующих значений: СОЗДАНО, АКТИВНО, НЕАКТИВНО. В настоящее время указанное вами значение индикатора состояния сохраняется в пакете продуктов 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 (идентификатор возвращается в ответе при создании пакета продукта 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 query установлено значение 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

Просмотрите пакеты продуктов 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. Индикатор статуса может иметь одно из следующих значений: СОЗДАНО, АКТИВНО, НЕАКТИВНО.

Н/Д Да