管理 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 刪除產品套裝組合 (如未定義費率方案)。

傳統版 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 產品套裝組合,請向以下機構發出 POST 要求: /organizations/{org_name}/monetization-packages。發出要求時,您 必須:

  • 找出要納入 API 產品組合的 API 產品。
  • 指定 API 產品套裝組合的名稱和說明。
  • 設定 API 產品組合的狀態指標。狀態指標可能是 下列值:CREATED、ACTIVE、INACTIVE。您目前指定的狀態指標值 在 API 產品套件中維護,但不會用於任何用途。

您也可以選擇指定機構。

請參閱 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 產品套裝組合,請發出 POST 要求至 organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, 其中 {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 產品套裝組合,請按照下列步驟操作 或指定收益分潤時,請發出 POST 要求至 organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, 其中 {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}, 其中 {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 產品套裝組合,請發出 GET 要求 到 /organizations/{org_name}/monetization-packages/{package_id},其中 {package_id} 是 API 產品組合的識別 (ID 會傳回 會在您建立 API 產品套裝組合時做出回應)。例如:

$ 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 產品套裝組合,請發出 GET 要求 要求 /organizations/{org_name}/monetization-packages。例如:

$ 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 產品組合。 指定日期範圍內,請發出 GET 要求到 /organizations/{org_name}/packages-with-transactions。發出要求時 您需要指定做為查詢參數、日期範圍的開始與結束日期。適用對象 例如,下列要求擷取含有交易當月的 API 產品套裝組合 2013 年 8 月。

$ 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 產品套裝組合

透過發出 GET 查看特定開發人員或公司接受的 API 產品套裝組合 要求指派給下列 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) 或 僅適用於開發人員或公司 (allAvailable=false) 專用的 API 產品套裝組合。 「所有可用項目」是指除了指定開發人員或公司以外,Google 提供的 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 產品組合,請發出 DELETE 要求 給organizations/{org_name}/monetization-packages/{package_id}, 其中 {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。

不適用