管理 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 UI 存取 API 產品組合頁面,請在左側導覽列中依序選取「發布」>「營利」>「產品組合」

如上圖所示,在「產品組合」頁面中,您可以執行下列操作:

您僅能透過 API 管理產品套裝組合中的 API 產品,或刪除產品套裝組合 (如未定義費率方案)。

傳統邊緣 (Private Cloud)

如要使用傳統版 Edge UI 存取 API 套件頁面,請在頂端導覽列中依序選取「Publish」(發布) >「Packages」(套件)

您可以在「API 套件」頁面執行下列操作:

  • 查看所有 API 套件的摘要資訊,包括內含的 API 產品及相關聯的費率方案
  • 新增 API 套件
  • 編輯 API 套件
  • 新增及管理房價方案
  • 切換費率方案存取權設定 (公開/私人)
  • 篩選套件清單

您可以管理 API 套件中的 API 產品,也可以只使用 API 刪除 API 套件 (如未定義費率方案)。

新增產品套裝組合

如何新增 API 產品套裝組合:

  1. 按一下「Product Bundles」頁面中的「+ 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 產品套裝組合只包含該公司或開發人員專屬的費率方案。 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。

不適用