Gérer les lots de produits API

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Regroupez un ou plusieurs produits d'API dans un seul conteneur monétisé, appelé lot de produits d'API, comme décrit dans les sections suivantes.

Qu'est-ce qu'un lot de produits API ?

Un lot de produits API est un ensemble de produits d'API présenté aux développeurs sous forme de groupe et généralement associé à un ou plusieurs plans tarifaires pour la monétisation. Vous pouvez créer plusieurs groupes de produits API et inclure un ou plusieurs produits API dans chacun d'eux. Vous pouvez placer le ou les mêmes produits d'API dans différents groupes et les associer à des plans tarifaires différents (ou identiques).

Les développeurs ne peuvent enregistrer leurs applications pour utiliser un lot de produits API qu'en achetant l'un des plans tarifaires en vigueur. Un lot de produits API n'est pas visible pour les développeurs tant que vous n'avez pas ajouté et publié (en tant que public) un plan tarifaire pour le lot de produits (avec une date de début correspondant à la date du jour ou à une date ultérieure), comme décrit dans la section Gérer les plans tarifaires. Une fois que vous avez ajouté et publié un plan tarifaire, les développeurs qui se connectent à votre portail des développeurs peuvent sélectionner le lot de produits API et choisir le plan tarifaire. Vous pouvez également accepter un plan tarifaire pour un développeur à l'aide de l'API de gestion. Pour en savoir plus, consultez Acheter des plans tarifaires publiés à l'aide de l'API.

Après avoir ajouté un produit API à un lot de produits API, vous devrez peut-être définir des prix pour celui-ci. Cette opération n'est nécessaire que si toutes les conditions suivantes sont remplies:

  • Vous configurez un plan de partage des revenus pour le produit d'API.
  • Les développeurs facturent des frais à des tiers pour l'utilisation des ressources du produit d'API.
  • Il existe une restriction minimale ou maximale sur le montant que les développeurs peuvent facturer, et vous souhaitez les informer de cette restriction.

Les prix minimal et maximal sont affichés dans les détails du lot de produits API.

Explorer la page "Offres groupées"

Accédez à la page "Offres groupées" comme indiqué ci-dessous.

Périphérie

Pour accéder à la page des groupes de produits de l'API à l'aide de l'interface utilisateur Edge, sélectionnez Publier > Monétisation > Lots de produits dans la barre de navigation de gauche.

Comme le montre la figure précédente, la page "Offres groupées" vous permet de:

Vous pouvez gérer les produits d'API d'un lot de produits ou supprimer un groupe de produits (si aucun plan tarifaire n'est défini) uniquement à l'aide de l'API.

Classic Edge (cloud privé)

Pour accéder à la page des packages d'API à l'aide de l'interface utilisateur Classic Edge, sélectionnez Publish > Packages (Publier > Packages) dans la barre de navigation supérieure.

La page "Packages d'API" vous permet d'effectuer les opérations suivantes:

  • Afficher des informations récapitulatives pour tous les packages d'API, y compris les produits d'API qu'ils contiennent et les plans tarifaires associés
  • Ajouter un package d'API
  • Modifier un package d'API
  • Ajouter et gérer des plans tarifaires
  • Activer/Désactiver le paramètre d'accès au plan tarifaire (public/privé)
  • Filtrer la liste des packages

Vous pouvez gérer les produits d'API d'un package d'API ou supprimer un package d'API (si aucun plan tarifaire n'est défini) uniquement à l'aide de l'API.

Ajouter un lot de produits

Pour ajouter un lot de produits API:

  1. Cliquez sur + Package de produits API sur la page Offres groupées.
  2. Attribuez un nom au lot de produits API.
  3. Saisissez le nom d'un produit API dans le champ Ajouter un produit.

    Lorsque vous saisissez le nom d'un produit d'API, une liste déroulante de produits d'API contenant la chaîne s'affiche. Cliquez sur le nom d'un produit API pour l'ajouter au lot. Répétez l'opération pour ajouter d'autres produits d'API.

  4. Répétez l'étape 3 pour ajouter d'autres noms de produits d'API.
  5. Pour chaque produit d'API que vous ajoutez, configurez la règle d'enregistrement des transactions.
  6. Cliquez sur Enregistrer le lot de produits.

Modifier un lot de produits

Pour modifier un lot de produits:

  1. Sur la page Offres de produits, cliquez sur la ligne du lot de produits que vous souhaitez modifier.

    Le panneau du lot de produits s'affiche.

  2. Modifiez les champs du lot de produits si nécessaire.

    Pour en savoir plus, consultez la section Configurer la règle d'enregistrement des transactions.

  3. Cliquez sur Mettre à jour le lot de produits.

Gérer des lots de produits API à l'aide de l'API

Les sections suivantes décrivent comment gérer les lots de produits API à l'aide de l'API.

Créer un lot de produits API à l'aide de l'API

Pour créer un lot de produits API, envoyez une requête POST à /organizations/{org_name}/monetization-packages. Lorsque vous émettez la requête, vous devez:

  • Identifiez les produits API à inclure dans le lot de produits API.
  • Indiquez un nom et une description pour le lot de produits API.
  • Définissez un indicateur d'état pour le lot de produits API. L'indicateur d'état peut avoir l'une des valeurs suivantes: CREATED, ACTIVE, INACTIVE. Actuellement, la valeur de l'indicateur d'état que vous spécifiez est conservée dans le lot de produits de l'API, mais elle n'est utilisée à aucune fin.

Vous pouvez éventuellement spécifier l'organisation.

Consultez Propriétés de configuration d'un lot de produits de l'API pour obtenir la liste des options présentées à l'API.

Exemple :

$ 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

Voici un exemple de réponse :

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

Notez que la réponse inclut des informations supplémentaires sur les produits d'API et tous les attributs personnalisés spécifiés pour ces produits d'API. (Les attributs personnalisés sont spécifiés lorsque vous créez un produit API.) Les attributs personnalisés d'un produit d'API peuvent être pris en compte dans différents plans tarifaires. Par exemple, si vous définissez un tableau des tarifs dans lequel vous facturez au développeur pour chaque transaction, vous pouvez définir le tarif du forfait en fonction d'un attribut personnalisé tel que le nombre d'octets transmis dans une transaction.

Gérer les produits d'API dans un lot de produits API à l'aide de l'API

Vous pouvez ajouter ou supprimer un produit d'API dans un lot de produits API à l'aide de l'API, comme décrit dans les sections suivantes.

Ajouter un produit API à un lot de produits API

Pour ajouter un produit API à un lot de produits API, envoyez une requête POST à organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, où {org_name} spécifie le nom de votre organisation, {package_id} spécifie le nom du groupe de produits API et {product_id} spécifie l'ID du produit API.

Exemple :

$ 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

Ajout d'un produit d'API à un lot de produits API avec des plans tarifaires spécifiques aux produits d'API

Pour ajouter un produit d'API à un lot de produits API comportant un ou plusieurs plans tarifaires spécifiques à un produit d'API (tableau des tarifs ou partage des revenus), envoyez une requête POST à organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, où {org_name} indique le nom de votre organisation, {package_id} le nom du groupe de produits API et {product_id} l'ID du produit API.

Vous devez transmettre les détails du plan tarifaire pour le nouveau produit API dans le corps de la requête. À l'exception du tableau ratePlanRates, les valeurs du plan tarifaire doivent correspondre à celles spécifiées pour tous les autres produits d'API. Pour en savoir plus sur les attributs de plans tarifaires pouvant être définis, consultez la section Propriétés de configuration des plans tarifaires.

Exemple :

$ 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

Supprimer un produit d'API d'un lot de produits API

Pour supprimer un produit API d'un lot de produits API, envoyez une requête DELETE à organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, où {org_name} spécifie le nom de votre organisation, {package_id} spécifie le nom du groupe de produits API et {product_id} indique l'ID du produit API.

Exemple :

$ 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

Afficher les lots de produits d'API à l'aide de l'API

Vous pouvez récupérer un lot de produits API spécifique ou tous les lots de produits API d'une organisation. Vous pouvez également récupérer les lots de produits d'API comportant des transactions dans une plage de dates donnée, c'est-à-dire uniquement les packages pour lesquels les utilisateurs appellent des applications qui accèdent aux API de ces packages entre des dates de début et de fin spécifiées.

Afficher un lot de produits API spécifique:pour récupérer un lot de produits API spécifique, envoyez une requête GET à /organizations/{org_name}/monetization-packages/{package_id}, où {package_id} correspond à l'identification du lot de produits API (l'ID est renvoyé dans la réponse lorsque vous créez le lot de produits API). Exemple :

$ 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

Afficher tous les lots de produits d'API:pour récupérer tous les groupes de produits d'API d'une organisation, envoyez une requête GET à /organizations/{org_name}/monetization-packages. Exemple :

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

Vous pouvez transmettre les paramètres de requête suivants pour filtrer les résultats:

Paramètre de requête Description
all Indicateur spécifiant si tous les lots de produits API doivent être renvoyés. Si la valeur est false, le nombre de lots de produits API renvoyés par page est défini par le paramètre de requête size. La valeur par défaut est false.
size Nombre de lots de produits API renvoyés par page. Valeur par défaut : 20. Si le paramètre de requête all est défini sur true, il est ignoré.
page Numéro de la page à afficher (si le contenu est paginé). Si le paramètre de requête all est défini sur true, il est ignoré.

La réponse permettant d'afficher tous les groupes de produits API d'une organisation doit se présenter comme suit (seule une partie de la réponse est affichée):

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

Afficher les lots de produits API avec les transactions:pour récupérer les lots de produits API avec les transactions effectuées au cours d'une période donnée, envoyez une requête GET à /organizations/{org_name}/packages-with-transactions. Lorsque vous émettez la requête, vous devez spécifier comme paramètres de requête une date de début et une date de fin pour la plage de dates. Par exemple, la requête suivante récupère les lots de produits d'API avec des transactions du mois d'août 2013.

$ 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

La réponse doit se présenter comme suit (seule une partie de la réponse est affichée) :

{
  "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"
  },
     ...
  } ]
}

Afficher les lots de produits API acceptés par un développeur ou une entreprise à l'aide de l'API

Affichez les lots de produits d'API acceptés par un développeur ou une entreprise spécifique en envoyant une requête GET aux API suivantes, respectivement:

  • /organizations/{org_name}/developers/{developer_id}/monetization-packages, où {developer_id} est l'ID (adresse e-mail) du développeur.
  • /organizations/{org_name}/companies/{company_id}/monetization-packages, où {company_id} est l'ID de l'entreprise.

Lorsque vous émettez la requête, vous pouvez éventuellement spécifier les paramètres suivants:

Paramètre de requête Description Par défaut
current Indique si seuls les groupes de produits d'API actifs (current=true) ou tous les packages (current=false) doivent être récupérés. Tous les plans tarifaires d'un package actif sont considérés comme disponibles. current=false
allAvailable Indique si tous les bundles de produits d'API disponibles (allAvailable=true) doivent être récupérés, ou uniquement les bundles de produits d'API disponibles spécifiquement pour le développeur ou l'entreprise (allAvailable=false). Tous les groupes de produits d'API disponibles font référence aux lots de produits d'API disponibles pour le développeur ou l'entreprise spécifiés, en plus d'autres développeurs ou entreprises. Les lots de produits d'API disponibles spécifiquement pour une entreprise ou un développeur ne contiennent que des plans tarifaires disponibles exclusivement pour cette entreprise ou ce développeur. allAvailable=true

Par exemple, la requête suivante récupère tous les lots de produits d'API acceptés par un développeur spécifique:

$ 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

La requête suivante récupère uniquement les packages d'API actifs acceptés par une entreprise spécifique:

$ 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

Supprimer un lot de produits de l'API à l'aide de l'API

Vous ne pouvez supprimer un groupe de produits API que si aucun plan tarifaire n'a été défini.

Pour supprimer un lot de produits API qui n'est associé à aucun plan tarifaire, envoyez une requête DELETE à organizations/{org_name}/monetization-packages/{package_id}, où {org_name} indique le nom de votre organisation et {package_id} le nom du groupe de produits API.

Exemple :

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

Propriétés de configuration des lots de produits API pour l'API

Les options de configuration des lots de produits d'API suivantes sont exposées à l'API:

Nom Description Par défaut Requis ?
description

Description du lot de produits API.

N/A Oui
displayName

Nom à afficher pour le groupe de produits de l'API (par exemple, dans un catalogue de packages d'API).

N/A Oui
name

Nom du groupe de produits API.

N/A Oui
organization

Organisation qui contient le lot de produits de l'API.

N/A Non
product

Tableau d'un ou de plusieurs produits dans le lot de produits de l'API.

N/A Non
status

Indicateur d'état du lot de produits API. L'indicateur d'état peut avoir l'une des valeurs suivantes: CREATED, ACTIVE, INACTIVE.

N/A Oui