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 projet Google Cloud auquel l'application appelante est associée. Consultez la section Partager des API protégées par une clé API pour en savoir plus.
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_NAME
par un nom qui décrit le compteur de requêtes API. - Remplacez
YOUR_METRIC_DISPLAY_NAME
par le texte affiché sur la page Endpoints > Services > Quotas afin d'identifier le quota. Remplacez
YOUR_QUOTA_LIMIT
par 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_NAME
par le nom que vous avez spécifié dans le paramètrelimitDefinitions
de l'annotation@Api
. Remplacez
YOUR_COST
par 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 projet Google Cloud auquel l'application appelante est associée. Consultez la section Partager des API protégées par une clé API pour en savoir plus.
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_NAME
par un nom qui décrit le compteur de requêtes API. - Remplacez
YOUR_METRIC_DISPLAY_NAME
par le texte affiché sur la page Endpoints > Services > Quotas afin d'identifier le quota. Remplacez
limit
par 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 :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_COSTS
du décorateur de méthode. La clé doit être le nom que vous avez spécifié dans l'argumentlimit_definitions
du 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 :