管理 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 产品中资源的使用费。
  • 开发者可收取的金额存在最低或最高限制,并且您希望将此限制告知开发者。

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

探索“产品套装”页面

访问“产品套装”页面,如下所述。

Edge

如需使用 Edge 界面访问“API 产品包”页面,请在左侧导航栏中依次选择发布 > 创收 > 产品包

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

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

您只能使用 API 管理产品套装中的 API 产品删除产品套装(如果未定义任何费率方案)。

经典边缘(私有云)

如需使用经典版 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 产品包,请分别向以下 API 发出 GET 请求:

  • /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。

不适用