API-Produktsets verwalten

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu Apigee X.
info

Bündeln Sie ein oder mehrere API-Produkte in einem einzigen monetarisierten Container, der als API-Produktbundle bezeichnet wird, wie in den folgenden Abschnitten beschrieben.

Was ist ein API-Produktbundle?

Ein API-Produktbundle ist eine Sammlung von API-Produkten, die Entwicklern als Gruppe angeboten werden und in der Regel mit einem oder mehreren Tarifpaketen für die Monetarisierung verknüpft sind. Sie können mehrere API-Produktbundles erstellen und in jedes Bundle ein oder mehrere API-Produkte aufnehmen. Sie können dasselbe API-Produkt oder dieselben API-Produkte in verschiedene Bundles aufnehmen und sie mit unterschiedlichen (oder denselben) Tarifpaketen verknüpfen.

Entwickler können ihre Apps nur dann für die Verwendung eines API-Produktbundles registrieren, wenn sie eines der derzeit gültigen Tarifpakete erwerben. Ein API-Produktbundle ist für Entwickler erst sichtbar, wenn Sie ein Tarifpaket für das Produktbundle hinzufügen und als öffentlich veröffentlichen (mit einem Startdatum, das dem aktuellen Datum oder einem zukünftigen Datum entspricht), wie unter Tarifpakete verwalten beschrieben. Nachdem Sie ein Tarifpaket hinzugefügt und veröffentlicht haben, können Entwickler, die sich in Ihrem Entwicklerportal anmelden, das API-Produktbundle auswählen und das Tarifpaket auswählen. Alternativ können Sie ein Tarifpaket für einen Entwickler mit der Management API akzeptieren. Weitere Informationen finden Sie unter Veröffentlichte Tarifpakete mit der API erwerben.

Nachdem Sie einem API-Produktbundle ein API-Produkt hinzugefügt haben, müssen Sie möglicherweise Preispunkte für das API-Produkt einrichten. Dies ist nur erforderlich, wenn alle folgenden Bedingungen erfüllt sind:

  • Sie haben ein Tarifpaket für die Umsatzbeteiligung für das API-Produkt eingerichtet.
  • Entwickler stellen Dritten die Nutzung von Ressourcen im API-Produkt in Rechnung.
  • Es gibt eine Mindest- oder Höchstbeschränkung für den Betrag, den Entwickler in Rechnung stellen können, und Sie möchten Entwickler über die Beschränkung informieren.

Die Mindest- und Höchstpreise werden in den Details für das API-Produktbundle angezeigt.

Seite „Produktbundles“

Rufen Sie die Seite „Produktbundles“ wie unten beschrieben auf.

Edge

Wählen Sie in der Edge-Benutzeroberfläche in der linken Navigationsleiste Veröffentlichen > Monetarisierung > Produktbundles aus, um auf die Seite „API-Produktbundles“ zuzugreifen.

Wie bereits erwähnt, können Sie auf der Seite „Produktbundles“:

  • Zusammenfassungsinformationen für alle Produktbundles ansehen, einschließlich des Bundle-Namens und der Liste der darin enthaltenen API-Produkte
  • Produktbundle hinzufügen
  • Produktbundle bearbeiten
  • Die Liste der Produktbundles in einem beliebigen sichtbaren Feld durchsuchen

Sie können die API-Produkte in einem Produktbundle verwalten oder ein Produktbundle löschen (wenn keine Tarifpakete definiert sind). Dies ist nur mit der API möglich.

Classic Edge (Private Cloud)

Wählen Sie in der Classic Edge-Benutzeroberfläche in der oberen Navigationsleiste Veröffentlichen > Pakete aus, um auf die Seite „API-Pakete“ zuzugreifen.

Auf der Seite „API-Pakete“ haben Sie folgende Möglichkeiten:

  • Zusammenfassungsinformationen für alle API-Pakete ansehen, einschließlich der darin enthaltenen API-Produkte und der zugehörigen Tarifpakete
  • API-Paket hinzufügen
  • API-Paket bearbeiten
  • Tarifpakete hinzufügen und verwalten
  • Die Zugriffseinstellung für das Tarifpaket umschalten (öffentlich/privat)
  • Die Liste der Pakete filtern

Sie können die API-Produkte in einem API-Paket verwalten oder ein API-Paket löschen (wenn keine Tarifpakete definiert sind). Dies ist nur mit der API möglich.

Produktbundle hinzufügen

So fügen Sie ein API-Produktbundle hinzu:

  1. Klicken Sie auf der Seite „Produktbundles“ auf + API-Produktbundle.
  2. Geben Sie einen Namen für das API-Produktbundle ein.
  3. Geben Sie den Namen eines API-Produkts in das Feld „Produkt hinzufügen“ ein.

    Während Sie den Namen eines API-Produkts eingeben, wird in einem Drop-down-Menü eine Liste von API-Produkten angezeigt, die die Zeichenfolge enthalten. Klicken Sie auf den Namen eines API-Produkts, um es dem Bundle hinzuzufügen. Wiederholen Sie diesen Schritt, um weitere API-Produkte hinzuzufügen.

  4. Wiederholen Sie Schritt 3, um weitere Namen von API-Produkten hinzuzufügen.
  5. Konfigurieren Sie für jedes hinzugefügte API-Produkt die Richtlinie zur Transaktionserfassung.
  6. Klicken Sie auf Produktbundle speichern.

Produktbundle bearbeiten

So bearbeiten Sie ein Produktbundle:

  1. Klicken Sie auf der Seite „Produktbundles“ in die Zeile des zu bearbeitenden Produktbundles.

    Das Produktbundle-Feld wird angezeigt.

  2. Bearbeiten Sie die Felder des Produktbundles nach Bedarf.

    Weitere Informationen finden Sie unter Richtlinie zur Transaktionserfassung konfigurieren.

  3. Klicken Sie auf Produktbundle aktualisieren.

API-Produktbundles mit der API verwalten

In den folgenden Abschnitten wird beschrieben, wie Sie API-Produktbundles mit der API verwalten.

API-Produktbundle mit der API erstellen

Senden Sie eine POST-Anfrage an /organizations/{org_name}/monetization-packages, um ein API-Produktbundle zu erstellen. Wenn Sie die Anfrage senden, müssen Sie:

  • Die API-Produkte angeben, die in das API-Produktbundle aufgenommen werden sollen.
  • Einen Namen und eine Beschreibung für das API-Produktbundle angeben.
  • Einen Statusindikator für das API-Produktbundle festlegen. Der Statusindikator kann einen der folgenden Werte haben: CREATED, ACTIVE, INACTIVE. Derzeit wird der von Ihnen angegebene Wert für den Statusindikator im API-Produktbundle beibehalten, aber er wird nicht verwendet.

Optional können Sie die Organisation angeben.

Eine Liste der Optionen, die für die API verfügbar sind, finden Sie unter Konfigurationseigenschaften für API-Produktbundles.

Beispiel:

$ 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

Im Folgenden finden Sie ein Beispiel für die Antwort:

{
   "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"
 }

Die Antwort enthält zusätzliche Informationen zu den API-Produkten und zu allen benutzerdefinierten Attributen, die für diese API-Produkte angegeben wurden. (Benutzerdefinierte Attribute werden beim Erstellen eines API-Produkts angegeben.) Benutzerdefinierte Attribute für ein API-Produkt können in verschiedenen Tarifpaketen berücksichtigt werden. Wenn Sie beispielsweise ein Tarifpaket mit einer Preisliste einrichten, bei dem Sie dem Entwickler jede Transaktion in Rechnung stellen, können Sie den Preis für das Paket anhand eines benutzerdefinierten Attributs festlegen, z. B. der Anzahl der in einer Transaktion übertragenen Byte.

API-Produkte in einem API-Produktbundle mit der API verwalten

Sie können einem API-Produktbundle mit der API ein API-Produkt hinzufügen oder daraus löschen, wie in den folgenden Abschnitten beschrieben.

API-Produkt zu einem API-Produktbundle hinzufügen

Senden Sie eine POST-Anfrage an organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, um einem API-Produktbundle ein API-Produkt hinzuzufügen. Dabei gibt {org_name} den Namen Ihrer Organisation, {package_id} den Namen des API-Produktbundles und {product_id} die ID des API Produkts an.

Beispiel:

$ 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-Produkt zu einem API-Produktbundle mit API produktspezifischen Tarifpaketen hinzufügen

Senden Sie eine POST-Anfrage an organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, um einem API-Produktbundle ein API-Produkt hinzuzufügen, für das ein oder mehrere API-produktspezifische Tarifpakete definiert sind (Preisliste oder Umsatzbeteiligung). Dabei gibt {org_name} den Namen Ihrer Organisation, {package_id} den Namen des API-Produktbundles und {product_id} die ID des API-Produkts an.

Sie müssen die Details des Tarifpakets für das neue API-Produkt im Anfragetext übergeben. Mit Ausnahme des Arrays ratePlanRates müssen die Werte des Tarifpakets mit den Werten übereinstimmen, die für alle anderen API-Produkte angegeben wurden. Weitere Informationen zu den Attributen des Tarifpakets, die definiert werden können, finden Sie unter Konfigurationseigenschaften für Tarifpakete.

Beispiel:

$ 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-Produkt aus einem API-Produktbundle löschen

Senden Sie eine DELETE-Anfrage an das organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, um ein API-Produkt aus einem API-Produktbundle zu löschen. Dabei gibt {org_name} den Namen Ihrer Organisation, {package_id} den Namen des API-Produktbundles und {product_id} die ID des API -Produkts an.

Beispiel:

$ 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-Produktbundles mit der API ansehen

Sie können ein bestimmtes API-Produktbundle oder alle API-Produktbundles in einer Organisation abrufen. Sie können auch API-Produktbundles abrufen, für die Transaktionen in einem bestimmten Zeitraum stattgefunden haben. Das heißt, nur Pakete, für die Nutzer Apps aufrufen, die innerhalb eines bestimmten Start- und End datums auf APIs in diesen Paketen zugreifen.

Bestimmtes API-Produktbundle ansehen:Senden Sie eine GET-Anfrage an /organizations/{org_name}/monetization-packages/{package_id}, um ein bestimmtes API-Produktbundle abzurufen. Dabei ist {package_id} die ID des API-Produktbundles (die ID wird in der Antwort zurückgegeben, wenn Sie das API-Produktbundle erstellen). Beispiel:

$ 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

Alle API-Produktbundles ansehen:Senden Sie eine GET Anfrage an /organizations/{org_name}/monetization-packages, um alle API-Produktbundles für eine Organisation abzurufen. Beispiel:

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages" \
-u email:password

Sie können die folgenden Abfrageparameter übergeben, um die Ergebnisse zu filtern:

Suchparameter Beschreibung
all Flag, das angibt, ob alle API-Produktbundles zurückgegeben werden sollen. Wenn auf false gesetzt, wird die Anzahl der API-Produktbundles, die pro Seite zurückgegeben werden, pro Seite zurückgegeben, durch den size Abfrageparameter definiert. Standardmäßig auf „false“ gesetzt.
size Anzahl der API-Produktbundles, die pro Seite zurückgegeben werden. Der Standardwert ist 20. Wenn der all Abfrage parameter auf true gesetzt ist, wird dieser Parameter ignoriert.
page Nummer der Seite, die zurückgegeben werden soll (wenn der Inhalt paginiert ist). Wenn der all Abfrageparameter auf true gesetzt ist, wird dieser Parameter ignoriert.

Die Antwort zum Ansehen aller API-Produktbundles in einer Organisation sollte so aussehen (nur ein Teil der Antwort wird angezeigt):

{
  "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-Produktbundles mit Transaktionen ansehen:Senden Sie eine GET-Anfrage an /organizations/{org_name}/packages-with-transactions, um API-Produktbundles mit Transaktionen in einem bestimmten Zeitraum abzurufen. Wenn Sie die Anfrage senden, müssen Sie als Abfrageparameter ein Start- und ein Enddatum für den Zeitraum angeben. Die folgende Anfrage ruft beispielsweise API-Produktbundles mit Transaktionen im August 2013 ab.

$ 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

Die Antwort sollte in etwa so aussehen (nur ein Teil der Antwort wird angezeigt):

{
  "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-Produktbundles ansehen, die von einem Entwickler oder Unternehmen mit der API akzeptiert wurden

Senden Sie eine GET Anfrage an die folgenden APIs, um die API-Produktbundles anzusehen, die von einem bestimmten Entwickler oder Unternehmen akzeptiert wurden:

  • /organizations/{org_name}/developers/{developer_id}/monetization-packages, wobei {developer_id} die ID (E-Mail-Adresse) des Entwicklers ist.
  • /organizations/{org_name}/companies/{company_id}/monetization-packages, wobei {company_id} die ID des Unternehmens ist.

Wenn Sie die Anfrage senden, können Sie optional die folgenden Abfrageparameter angeben:

Suchparameter Beschreibung Standard
current Flag, das angibt, ob nur aktive API-Produktbundles (current=true) oder alle Pakete (current=false) abgerufen werden sollen. Alle Tarifpakete in einem aktiven Paket gelten als verfügbar. current=false
allAvailable Flag, das angibt, ob alle verfügbaren API-Produktbundles (allAvailable=true) oder nur API-Produktbundles abgerufen werden sollen, die speziell für den Entwickler oder das Unternehmen verfügbar sind (allAvailable=false). „Alle verfügbar“ bezieht sich auf die API-Produktbundles, die dem angegebenen Entwickler oder Unternehmen zusätzlich zu anderen Entwicklern oder Unternehmen zur Verfügung stehen. API-Produktbundles, die speziell für ein Unternehmen oder einen Entwickler verfügbar sind, enthalten nur Tarifpakete die ausschließlich für dieses Unternehmen oder diesen Entwickler verfügbar sind. allAvailable=true

Die folgende Anfrage ruft beispielsweise alle API-Produktbundles ab, die von einem bestimmten Entwickler akzeptiert wurden:

$ 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

Die folgende Anfrage ruft nur aktive API-Pakete ab, die von einem bestimmten Unternehmen akzeptiert wurden:

$ 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-Produktbundle mit der API löschen

Sie können ein API-Produktbundle nur löschen, wenn keine Tarifpakete definiert sind.

Senden Sie eine DELETE-Anfrage an organizations/{org_name}/monetization-packages/{package_id}, wobei {org_name} den Namen Ihrer Organisation und {package_id} den Namen des API-Produktbundles angibt, um ein API-Produktbundle zu löschen, für das keine Tarifpakete definiert sind.

Beispiel:

$ curl -H "Accept:application/json" -X DELETE \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/{package_id}" \
-u email:password

Konfigurationseigenschaften für API-Produktbundles für die API

Die folgenden Konfigurationsoptionen für API-Produktbundles sind für die API verfügbar:

Name Beschreibung Standard Erforderlich?
description

Eine Beschreibung des API-Produktbundles.

Ja
displayName

Der Name, der für das API-Produktbundle angezeigt werden soll (z. B. in einem Katalog von API Paketen).

Ja
name

Der Name des API-Produktbundles.

Ja
organization

Die Organisation, die das API-Produktbundle enthält.

Nein
product

Ein Array mit einem oder mehreren Produkten im API-Produktbundle.

Nein
status

Ein Statusindikator für das API-Produktbundle. Der Statusindikator kann einen der folgenden Werte haben: CREATED, ACTIVE, INACTIVE.

Ja