管理 API 产品捆绑包

您正在查看的是 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 产品组合页面,请在左侧导航栏中依次选择发布 > 创收 > 产品包

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

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

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

传统 Edge (Private Cloud)

如需使用传统版 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 发出 POST 请求。发出请求时,您必须:

  • 确定要包含在 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 产品,请向 organizations/{org_name}/monetization-packages/{package_id}/products/{product_id} 发出 POST 请求,其中 {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} 发出 POST 请求,其中 {org_name} 指定贵组织的名称,{package_id} 指定 API 产品组合名称,{product_id} 指定 API 产品的 ID。

您必须在请求正文中传递新 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 产品,请向 organizations/{org_name}/monetization-packages/{package_id}/products/{product_id} 发出 DELETE 请求,其中 {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 商品套装,请向 /organizations/{org_name}/monetization-packages/{package_id} 发出 GET 请求,其中 {package_id} 是 API 商品套装的标识(当您创建 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 商品套装,请向 /organizations/{org_name}/monetization-packages 发出 GET 请求。例如:

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

$ 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} 是开发者的 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 产品组合。专供某公司或开发者使用的 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 产品组合,请向 organizations/{org_name}/monetization-packages/{package_id} 发出 DELETE 请求,其中 {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。

不适用