API プロダクト バンドルの管理

<ph type="x-smartling-placeholder"></ph> 現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメント
詳細

以下のセクションで説明するように、1 つ以上の API プロダクトを API プロダクト バンドルという単一の収益化されたコンテナにバンドルします。

API プロダクト バンドルとは何ですか?

API プロダクト バンドルは、デベロッパーにグループとして提示される API プロダクトの集合であり、通常は収益化のための 1 つ以上の料金プランに関連付けられます。複数の API プロダクト バンドルを作成し、それぞれに 1 つ以上の API プロダクトを含めることができます。 同じ API プロダクトまたはプロダクトを異なるバンドルに配置して、異なる(または同じ)料金プランに関連付けることができます。

デベロッパーは、現在有効な料金プランのいずれかを購入することでのみ、API プロダクト バンドルを使用するようにアプリを登録できます。 プロダクト バンドルの料金プランを(公開として)追加して公開するまで、API プロダクト バンドルはデベロッパーに表示されません (現在の日付または将来の日付の開始日で指定)するには、料金プランの管理をご覧ください。 料金プランを追加して公開すると、デベロッパー ポータルにログインしたデベロッパーが API プロダクト バンドルを選択できるようになります 料金プランを選択しますまたは、管理 API を使用してデベロッパーの料金プランを承認することもできます。 詳しくは、API を使用して公開料金プランを購入するをご覧ください。

API プロダクト バンドルに API プロダクトを追加した後、その商品の価格帯の設定が必要になる場合があります。 API プロダクト。この操作は、以下の条件をすべて満たす場合にのみ必要です。

  • API プロダクトの収益分配料金プランを設定します。
  • デベロッパーは、API プロダクトのリソースの使用に対して第三者に料金を請求します。
  • デベロッパーが請求できる金額には最小または最大の制限があり、 して制限をデベロッパーに通知します。

最低価格と最高価格は、API プロダクト バンドルの詳細に表示されます。

[Product Bundles] ページにアクセスする

以下の手順に沿って [Product Bundles] ページにアクセスします。

Edge

Edge UI を使用して [API product bundle] ページにアクセスするには、[Publish] >収益化 >一括販売商品] をクリックします。

上の図に示すように、[Product Bundles] ページでは次のことができます。

プロダクト バンドル内の API プロダクトの管理や、プロダクト バンドルの削除(料金プランが定義されていない場合)は、API のみを使用して行うことができます。

Classic Edge(プライベート クラウド)

Classic Edge UI を使用して [API packages] ページにアクセスするには、[Publish] >パッケージ] をクリックします。

[API パッケージ] ページでは、次のことができます。

  • 含まれている API プロダクトや関連する料金プランなど、すべての API パッケージの概要を表示する
  • API パッケージを追加する
  • API パッケージを編集する
  • 料金プランの追加と管理
  • 料金プランのアクセス設定の切り替え(公開/限定公開)
  • パッケージのリストをフィルタする

API パッケージ内の API プロダクトの管理や、API パッケージの削除(料金プランが定義されていない場合)は、API のみを使用して行うことができます。

一括販売商品を追加する

API プロダクトのバンドルを追加するには:

  1. [プロダクト バンドル] ページで [+ API プロダクト バンドル] をクリックします。
  2. API プロダクトのバンドルの名前を入力します。
  3. [Add a Product] フィールドに API プロダクトの名前を入力します。

    API プロダクトの名前を入力すると、その文字列を含む API プロダクトのリストがプルダウンに表示されます。 API プロダクトの名前をクリックして、バンドルに追加します。さらに API プロダクトを追加するには、この手順を繰り返します。

  4. さらに API プロダクト名を追加するには、ステップ 3 を繰り返します。
  5. 追加する API プロダクトごとに、トランザクション記録ポリシーを構成します。
  6. [一括販売を保存] をクリックします。

一括販売商品を編集する

一括販売商品を編集するには:

  1. [商品バンドル] ページで、編集する商品の一括販売の行内をクリックします。

    商品の一括販売のパネルが表示されます。

  2. 必要に応じて、商品の一括販売フィールドを編集します。

    詳細については、トランザクション記録ポリシーを構成するをご覧ください。

  3. [Update Product Bundle] をクリックします。

API を使用した API プロダクト バンドルの管理

以降のセクションでは、API を使用して API プロダクト バンドルを管理する方法について説明します。

API を使用した API プロダクト バンドルの作成

API プロダクト バンドルを作成するには、POST リクエストを次の宛先に送信します。 /organizations/{org_name}/monetization-packages。このリクエストを発行すると 要件:

  • API プロダクト バンドルに含める API プロダクトを指定します。
  • API プロダクト バンドルの名前と説明を指定します。
  • API プロダクト バンドルのステータス インジケーターを設定します。ステータス インジケーターには、 CREATED、ACTIVE、INACTIVE のいずれかです。現在指定したステータス インジケーターの値は、 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 プロダクト固有の料金プランが 1 つ以上ある API プロダクト バンドルに API プロダクトを追加するには (料金表または収益分配率)が定義されると、POST リクエストを発行して organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, ここで、{org_name} には組織の名前({package_id})を指定します。 には API プロダクトのバンドル名を指定し、{product_id} には API の ID を指定します。 説明します。

リクエストの本文で新しい API プロダクトの料金プランの詳細を渡す必要があります。例外を ratePlanRates 配列には、すべての料金プランに指定された 使用できます。定義できる料金プラン属性について詳しくは、以下をご覧ください。 構成プロパティ 料金プランをご覧ください。

<ph type="x-smartling-placeholder">

例:

$ 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 です(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。リクエストを発行すると 期間の開始日と終了日をクエリ パラメータとして指定する必要があります。対象 たとえば、次のリクエストでは、 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 プロダクト バンドルのみ。 「利用可能なすべて」とは、指定したデベロッパーや会社に加えて、利用可能な 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 プロダクトのバンドルは、料金プランが定義されていない場合にのみ削除できます。

<ph type="x-smartling-placeholder">

料金プランが定義されていない 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 プロダクト バンドル内の 1 つ以上のプロダクトの配列。

なし いいえ
status

API プロダクト バンドルのステータス インジケーター。ステータス インジケーターには、 CREATED、ACTIVE、INACTIVE のいずれかです。

なし はい