您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
如以下各節所述,將一或多個 API 產品組合成單一營利容器,也就是 API 產品組合。
什麼是 API 產品組合?
API 產品組合是一組 API 產品,會以群組形式向開發人員顯示,通常與一或多個營利費率方案相關聯。您可以建立多個 API 產品組合,並在每個組合中加入一或多個 API 產品。 您可以將相同 API 產品放入不同組合,並與不同 (或相同) 的費率方案建立關聯。
開發人員必須購買目前有效的費率方案,才能註冊應用程式以使用 API 產品組合。 如要讓開發人員看到 API 產品組合,您必須為產品組合新增並發布費率方案 (設為公開,且開始日期為當天或之後),如「管理費率方案」一文所述。新增並發布費率方案後,登入開發人員入口網站的開發人員就能選取 API 產品組合並選擇費率方案。或者,您也可以使用管理 API 接受開發人員的費率方案。 詳情請參閱「使用 API 購買已發布的費率方案」。
將 API 產品新增至 API 產品組合後,您可能需要為 API 產品設定價位。只有在符合下列所有條件時,才需要執行這項操作:
- 您為 API 產品設定收益分潤費率方案。
- 開發人員會向第三方收取使用 API 產品中資源的費用。
- 開發人員可收取的金額設有下限或上限,您想通知開發人員這項限制。
API 產品組合的詳細資料會顯示最低和最高價格。
瀏覽「產品套裝組合」頁面
存取「產品組合」頁面,如下所述。
邊緣
如要使用 Edge UI 存取 API 產品組合頁面,請在左側導覽列中依序選取「發布」>「營利」>「產品組合」。

如上圖所示,「產品組合」頁面可讓您:
您只能使用 API 管理產品組合中的 API 產品,或刪除產品組合 (如果未定義費率方案)。
Classic Edge (Private Cloud)
如要使用傳統 Edge UI 存取 API 套件頁面,請選取頂端導覽列中的「發布」>「套件」。
您可以在「API 套裝組合」頁面執行下列操作:
- 查看所有 API 套件的摘要資訊,包括內含的 API 產品和相關聯的費率方案
- 新增 API 套件
- 編輯 API 套件
- 新增及管理費率方案
- 切換房價方案存取權設定 (公開/私人)
- 篩選套件清單
您只能使用 API 管理 API 套件中的 API 產品,或刪除 API 套件 (如果未定義任何費率方案)。
新增產品組合
如要新增 API 產品組合,請按照下列步驟操作:
- 在「產品組合」頁面上,按一下「+ API 產品組合」。
- 輸入 API 產品組合名稱。
在「新增產品」欄位中輸入 API 產品名稱。
輸入 API 產品名稱時,下拉式選單會顯示包含該字串的 API 產品清單。 按一下 API 產品名稱,即可將其新增至套裝組合。重複以上步驟,新增其他 API 產品。
- 重複步驟 3,新增其他 API 產品名稱。
- 為新增的每個 API 產品設定交易記錄政策。
- 按一下「儲存產品組合」。
編輯產品組合
如要編輯產品組合,請按照下列步驟操作:
-
系統會顯示產品組合面板。
視需要編輯產品組合欄位。
詳情請參閱設定交易記錄政策。
- 按一下「更新產品組合」。
使用 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 產品組合的 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 產品組合,請對 /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 產品組合,只會包含專供該公司或開發人員使用的費率方案。 |
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 產品套裝組合的說明。 |
N/A | 是 |
displayName |
API 產品組合的顯示名稱 (例如在 API 套件目錄中)。 |
N/A | 是 |
name |
API 產品組合的名稱。 |
N/A | 是 |
organization |
包含 API 產品組合的機構。 |
N/A | 否 |
product |
API 產品組合中一或多項產品的陣列。 |
N/A | 否 |
status |
API 產品組合的狀態指標。狀態指標可為下列其中一個值:CREATED、ACTIVE、INACTIVE。 |
N/A | 是 |