管理 API 产品捆绑包

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

将一个或多个 API 产品捆绑到一个用于创收的容器中(称为 API 产品套装),如以下部分所述。

什么是 API 产品套装?

API 产品套装是一组以群组形式呈现给开发者的 API 产品集合,通常与一个或多个用于变现的费率方案相关联。您可以创建多个 API 产品套装,并在每个套装中添加一个或多个 API 产品。 您可以将相同的 API 产品或产品放入不同的套装中,并将其与不同(或相同)费率方案相关联。

开发者只能通过购买目前有效的价格方案之一来注册其应用,以便使用 API 产品套装。 只有在您为 API 产品套装添加并发布(公开)该套装的费率方案后,开发者才能看到它 (开始日期为当前日期或未来日期),如管理费率方案中所述。 添加并发布费率方案后,登录开发者门户的开发者将能够选择 API 商品包 并选择费率方案或者,您也可以使用 Management API 接受开发者的费率方案。 如需了解详情,请参阅使用 API 购买已发布的费率方案

将 API 产品添加到 API 产品套装后,您可能需要为 API 产品。只有在满足以下所有条件时,您才需要执行此操作:

  • 您为 API 产品设置了收益分成费率方案。
  • 开发者就 API 产品中资源的使用向第三方收费。
  • 开发者可收取的费用存在最低或最高限额,并且您希望 以将该限制告知开发者。

最低和最高价格会显示在 API 产品套装的详细信息中。

浏览“商品套装”页面

访问“商品套装”页面(如下所述)。

Edge

要使用 Edge 界面访问 API 产品套装页面,请选择发布 >创收 >Product Bundle

如上图突出显示,您可以通过“商品套装”页面执行以下操作:

  • 查看所有商品套装的摘要信息,包括套装名称及其包含的 API 商品的列表
  • 添加商品套装
  • 修改商品套装
  • 在任何可见字段中搜索商品套装列表

您可以仅使用 API 管理产品套装中的 API 产品删除产品套装(如果未定义费率方案)。

传统 Edge(私有云)

如需使用经典 Edge 界面访问“API 软件包”页面,请依次选择发布 >软件包

通过“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 产品套装,请向 /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 的 ID 产品。

例如:

$ 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 产品 (价目表或收益分成),则向 organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, 其中 {org_name} 指定贵组织的名称 {package_id} 用于指定 API 商品套装名称,{product_id} 用于指定 API 的 ID 产品。

您必须在请求正文中传递新 API 产品的费率方案详情。除了 ratePlanRates 数组,则费率方案值必须与为 其他 API 产品。如需详细了解可定义的费率方案属性,请参阅 配置属性 适用于价格方案

<ph type="x-smartling-placeholder">

例如:

$ 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 商品,请向 organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, 其中 {org_name} 指定贵组织的名称 {package_id} 用于指定 API 商品套装名称,{product_id} 用于指定 API 的 ID 产品。

例如:

$ 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 会在 响应)。例如:

$ 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 商品套装:检索 则向 /organizations/{org_name}/packages-with-transactions。当您发出请求时 您需要指定日期范围的开始日期和结束日期作为查询参数。对于 例如,以下请求检索在 2013 年 8 月。

$ 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 产品包 分别发送到以下 API:

  • /organizations/{org_name}/developers/{developer_id}/monetization-packages,其中 {developer_id} 是开发者的 ID(电子邮件地址)。
  • /organizations/{org_name}/companies/{company_id}/monetization-packages,其中 {company_id} 是公司的 ID。

在发出请求时,您可以选择指定以下查询参数:

查询参数 说明 默认
current 用于指定是仅检索有效的 API 商品套装 (current=true) 还是全部检索的标志 软件包 (current=false)。有效资源包中的所有费率方案都被视为 可用。 current=false
allAvailable 用于指定是检索所有可用的 API 商品套装 (allAvailable=true) 还是 仅限专为开发者或公司提供的 API 产品包 (allAvailable=false)。 “所有可用”是指除了可用于指定开发者或公司的 API 产品包之外, 其他开发者或公司。公司或开发者专用的 API 产品套装仅包含费率方案 。 allAvailable=true

例如,以下请求可检索特定 开发者:

$ 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 产品套装。

<ph type="x-smartling-placeholder">

如需删除未定义任何费率方案的 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。

不适用