Décrivez les plans que vous souhaitez inclure dans votre produit IBM®
API Connect et les API qu'ils contiendront, ainsi que les limites de débit qui s'appliquent.
A propos de cette tâche
Un plan contient des API et leurs opérations. Il peut être
utilisé pour implémenter des limites de débit et personnaliser la
visibilité.
Remarque: Si vous utilisez plusieurs serveurs
DataPower® dans un service de passerelle, pour calculer correctement les appels d'API pour les limites de débit, les serveurs doivent pouvoir communiquer entre eux à l'aide de groupes d'homologues SLM, en utilisant l'appairage de diffusion sélective SLM ou l'appairage de multidiffusion SLM en fonction de la configuration de votre réseau. Pour plus d'informations, consultez
la section « Peering SLM ».
En outre, vous pouvez
appliquer des limites de diffusion en rafale à vos plans, pour empêcher les pics
d'utilisation qui risqueraient d'endommager l'infrastructure. Plusieurs limites de diffusion en rafale peuvent être définies par plan, à des intervalles de temps en seconde et en minute. Vous pouvez également définir plusieurs limites de débit par plan
et par opération, à des intervalles en secondes, minutes, heures, jours et semaines.
Remarque: toutes les clés et les valeurs d'énumération spécifiées dans cette rubrique sont sensibles à la casse.
Les deux exemples de descriptions de plan d'une représentation YAML
d'un produit se trouvent à la fin de la rubrique. Un exemple de représentation YAML complète d'un produit se trouve dans Un exemple de représentation YAML d'un produit.
Procédure
Pour décrire des plans, incluez-y des API, et définissez des
limites de débit pour les plans ou des opérations. Suivez les instructions
ci-dessous :
- Commencer la section Plans avec plans:
- Sous Plans, commencez la description du premier plan en fournissant un
nom et une description et indiquez si une approbation est requise pour les
demandes d'abonnement. Utilisez la syntaxe suivante :
plans:
Plan_Name:
title: Plan_Title
description: Plan_Description
approval: Approval_Toggle
où :
- Plan_Name est le nom du plan. Il doit
s'agir d'un mot contenant uniquement des caractères alphanumériques et les
caractères - (tiret) et _ (soulignement). Le nom est sensible à la casse et ne doit pas comporter plus de 20 caractères pour pouvoir être affiché dans l'interface utilisateur d' API Manager .
- Plan_Title est le titre de la chaîne Plan.Any peut être utilisée, mais le titre doit être court pour pouvoir être affiché dans l'interface utilisateur d' API Manager .
- description_plan est la description du plan.
- bouton_bascule_approbation doit avoir la valeur
true (dans ce cas, une
approbation est nécessaire pour les demandes d'abonnement)
ou la valeur false (dans ce cas les abonnements
sont approuvés automatiquement).
- Facultatif : dans votre plan, ajoutez plusieurs limites de débit et de rafale qui s'appliqueront à toutes les opérations du plan; utilisez la syntaxe suivante :
rate-limits:
Name:
value: Rate_Limit
hard-limit: Limit_Toggle
Name:
value: Rate_Limit
hard-limit: Limit_Toggle
burst-limits:
Name:
value: Burst_Limit
où :
- Nom est le nom de la limite.
- limite_débit est la limite de débit. Il peut s'agir de multiples de secondes, de minutes, d'heures, de jours ou de semaines, écrits respectivement sous la forme second, minute, hour, dayet week ; n'utilisez pas les formes plurielles des mots. Utilisez
la syntaxe suivante :
1/2minute. Si l'unité de temps est au singulier, il n'est
pas nécessaire de la faire précéder d'un nombre, par exemple, 1/minute. Si vous ne voulez pas appliquer une limite de
débit, définissez limite_débit sous la forme unlimited.
- Limit_Toggle doit être true ou false. Si la valeur est true,
les appels d'API d'un développeur échouent si la limite de débit est
dépassée. Cette étape n'est pas nécessaire si vous avez affecté à
limite_débit la valeur
unlimited.
- limite_diffusion_en_rafale est la limite de diffusion en rafale. Il peut s'agir de multiples de secondes ou de minutes, écrits sous la forme second ou minute; n'utilisez pas les formes plurielles des mots.
Remarque :
- L'application d'une limite de débit au niveau du plan crée une limite de débit par défaut qui est partagée entre toutes les opérations au sein du plan. Si vous avez besoin de limites de débit spécifiques pour des opérations particulières,
vous devez les définir au sein même des opérations et ces paramètres remplaceront alors le
paramètre défini au niveau du plan.
- L'application de test utilisée par l'outil de test API Manager n'est pas soumise à des limites de débit si vous avez activé les abonnements automatiques pour le catalogue dans lequel vous effectuez les tests. Pour plus d'informations, voir Utilisation de catalogues
- Sous le plan, indiquez les API à inclure.
Référencez les API par nom et version, comme suit :
apis:
API_1_nameAPI_1_version: {}
API_2_nameAPI_2_version: {}
où
- les variables nom_n_API sont les noms sensibles à la casse des API.
- les variables version_n_API sont les versions des API.
- Facultatif : si vous souhaitez n'inclure qu'un sous-ensemble des opérations d'une API, énumérez les opérations à inclure; utilisez la syntaxe suivante :
apis:
API_nameAPI_version:
operations:
- operation: Operation_1_Verb
path: Operation_1_Path
- operation: Operation_2_Verb
path: Operation_2_Path
où
- les variables chemin_n_opération sont les chemins
des opérations à inclure. Le tiret est requis pour chaque opération.
- les variables verbe_n_opération sont les
instructions REST appropriées des opérations.
- Facultatif : si vous souhaitez définir plusieurs limites de débit pour une seule opération, utilisez la syntaxe suivante :
apis:
API_nameAPI_version:
operations:
- operation: Operation_Verb
path: Operation_Path
rate-limits:
Name:
value: Operation_Limit
hard-limit: Operation_Limit_Toggle
Name:
value: Operation_Limit
hard-limit: Operation_Limit_Toggle
où :
- limite_opération est la limite de débit à appliquer à
l'opération. Il peut s'agir de multiples de secondes, de minutes, d'heures, de jours ou de semaines, écrits respectivement sous la forme second, minute, hour, dayet week ; n'utilisez pas les formes plurielles des mots. Utilisez
la syntaxe suivante :
1/2minute. Si l'unité de temps est au singulier, il n'est
pas nécessaire de la faire précéder d'un nombre, par exemple, 1/minute. Si vous ne voulez pas appliquer une limite de
débit, définissez limite_opération sous la forme unlimited.
- Operation_Limit_Toggle doit être true ou false. Si la valeur est true,
les appels d'API d'un développeur échouent si la limite de débit est
dépassée. Cette étape n'est pas nécessaire si vous avez affecté à
limite_opération la valeur
unlimited.
Résultats
Vous avez décrit les plans à inclure dans le produit. Votre
section Plans doit être similaire aux scénarios suivants.
Si vous avez appliqué une limite de débit pour le plan sans définir d'opération
individuelle, la section Plan doit se présenter comme suit :
plans:
Plan_Name:
title: Plan_Title
description: Plan_Description
approval: Approval_Toggle
rate-limits:
Name:
value: Limit
hard-limit: Limit_Toggle
apis:
API_1_nameAPI_1_version: {}
API_2_nameAPI_2_version: {}
Si vous avez appliqué des limites de débit au niveau du plan et que vous souhaitez inclure deux opérations, avec une limite de débit distincte pour l'une des opérations, la section Plan doit se présenter comme suit :
plans:
Plan_Name:
title: Plan_Title
description: Plan_Description
approval: Approval_Toggle
rate-limits:
Name:
value: API_Limit
hard-limit: API_Limit_Toggle
burst-limits:
Name:
value: Burst_limit
apis:
API_nameAPI_version:
operations:
- operation: Operation_1_Verb
path: Operation_1_Path
rate-limits:
Name:
value: Operation_Limit
hard-limit: Operation_Limit_Toggle
- operation: Operation_2_Verb
path: Operation_2_Path
Dans les deux exemples, les variables sont les mêmes que celles dans
les étapes précédentes, et l'indentation doit être la même.
L'exemple suivant présente une section complète d'exemples de plans :
plans:
default:
title: Default Plan
description: Default Plan
approval: false
rate-limits:
default:
value: 100/hour
hard-limit: false
my-plan:
title: my_plan
rate-limits:
Default rate-limit:
value: 50/1hour
hard-limit: false
burst-limits:
Default burst-limit:
value: 10/1second
apis:
api21.0.0:
operations:
- operation: get
path: /path2
api31.0.0:
operations:
- operation: get
path: /path3
rate-limits:
limit3:
value: 10/1second
hard-limit: true
limit4:
value: 100/1hour
hard-limit: true
api11.0.0: {}