Cette page explique comment configurer des quotas pour votre API dans Cloud Endpoints Frameworks. Pour une présentation des fonctionnalités fournies par les quotas, consultez la page À propos des quotas.
Java
La procédure suivante suppose que vous avez déjà :
- écrit et annoté le code de votre API ;
- ajouté la gestion de l'API.
- déployé votre API ;
- configuré l'utilisation d'une clé API dans votre API. Cela est nécessaire pour que Endpoints Frameworks puisse identifier le projetGoogle Cloud auquel l'application appelante est associée. Pour en savoir plus, consultez Partager des API protégées par une clé API.
Pour configurer des quotas sur votre API :
Dans le fichier contenant les annotations appliquées au niveau de l'API, ajoutez le code suivant à votre annotation @Api :
limitDefinitions = { @ApiLimitMetric( name = "YOUR_METRIC_NAME", displayName = "YOUR_METRIC_DISPLAY_NAME", limit = YOUR_QUOTA_LIMIT) }- Remplacez
YOUR_METRIC_NAMEpar un nom qui décrit le compteur de requêtes API. - Remplacez
YOUR_METRIC_DISPLAY_NAMEpar le texte affiché sur la page Endpoints > Services > Quotas afin d'identifier le quota. Remplacez
YOUR_QUOTA_LIMITpar une valeur entière. Il s'agit du nombre de requêtes qu'une application associée au projet Google Cloud d'un utilisateur peut exécuter en une minute. Exemple :@Api( name = "echo", version = "v1", namespace = @ApiNamespace( ownerDomain = "echo.example.com", ownerName = "echo.example.com", packagePath = "" ), limitDefinitions = { @ApiLimitMetric( name = "read-requests", displayName = "Read requests", limit = 1000), @ApiLimitMetric( name = "list-requests", displayName = "List requests", limit = 100), @ApiLimitMetric( name = "write-requests", displayName = "Write requests", limit = 50), } )
- Remplacez
Pour chaque méthode à laquelle vous souhaitez appliquer un quota, ajoutez le code suivant à l'annotation
@ApiMethod:metricCosts = { @ApiMetricCost( name ="YOUR_METRIC_NAME", cost = YOUR_COST) }- Remplacez
YOUR_METRIC_NAMEpar le nom que vous avez spécifié dans le paramètrelimitDefinitionsde l'annotation@Api. Remplacez
YOUR_COSTpar une valeur entière qui spécifie le coût pour chaque requête.Exemple :
@ApiMethod(name = "echo", metricCosts = { @ApiMetricCost( name = "read-requests", cost = 1) }) public Message echo(Message message, @Named("n") @Nullable Integer n) { // ...function code here... }
- Remplacez
Pour plus d'informations sur les annotations utilisées dans les quotas, consultez les liens ci-dessous :
Python
La procédure suivante suppose que vous avez déjà :
- installé la version 2.4.5 ou ultérieure de la bibliothèque Endpoints Frameworks ;
- créé votre API ;
- créé un serveur Web ;
- ajouté la gestion de l'API ;
- déployé votre API ;
- configuré l'utilisation d'une clé API dans votre API. Cela est nécessaire pour que Endpoints Frameworks puisse identifier le projetGoogle Cloud auquel l'application appelante est associée. Pour en savoir plus, consultez Partager des API protégées par une clé API.
Pour configurer des quotas sur votre API :
Dans le fichier contenant le décorateur d'API, créez une liste d'instances
LimitDefinition, semblable à celle-ci :quota_limits = [ endpoints.LimitDefinition( "YOUR_METRIC_NAME", "YOUR_METRIC_DISPLAY_NAME", limit) ]- Remplacez
YOUR_METRIC_NAMEpar un nom qui décrit le compteur de requêtes API. - Remplacez
YOUR_METRIC_DISPLAY_NAMEpar le texte affiché sur la page Endpoints > Services > Quotas afin d'identifier le quota. Remplacez
limitpar une valeur entière. Il s'agit du nombre de requêtes qu'une application associée au projet Google Cloudd'un utilisateur peut exécuter en une minute. Exemple :quota_limits = [ endpoints.LimitDefinition('read-requests', 'Read Requests', 1000), endpoints.LimitDefinition('list-requests', 'List Requests', 100), endpoints.LimitDefinition('write-requests', 'Write Requests', 50), ]
- Remplacez
Ajoutez votre quota au décorateur d'API en l'attribuant à l'argument
limit_definitions. Exemple :@endpoints.api(name='bookstore', version='v1', limit_definitions=quota_limits)Pour chaque méthode à laquelle vous souhaitez appliquer un quota, attribuez un dictionnaire à l'argument
METRIC_COSTSdu décorateur de méthode. La clé doit être le nom que vous avez spécifié dans l'argumentlimit_definitionsdu décorateur d'API, et la valeur est un entier qui spécifie le coût de chaque requête. Exemple :@endpoints.method(path='shelves/{shelf}', http_method='GET', metric_costs={'read-requests': 1}) def get_shelf(self, request): # ...function code here...
Pour plus d'informations sur les décorateurs utilisés dans les quotas, consultez les liens ci-dessous :