管理 API 產品組合

您目前查看的是 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 產品組合,請按照下列步驟操作:

  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 產品組合的 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