En esta página se explica cómo configurar las cuotas de tu API en Cloud Endpoints Frameworks. Para obtener información general sobre la funcionalidad que proporcionan las cuotas, consulta la información sobre las cuotas.
Java
En este procedimiento se asume que ya has hecho lo siguiente:
- Has escrito y anotado el código de tu API.
- Has añadido la administración de la API.
- Has desplegado tu API.
- Has configurado tu API para usar una clave de API. Esta acción es necesaria para que Cloud Endpoints Frameworks pueda identificar el proyecto de Cloud al que está asociada la aplicación que realiza la llamada.
Para configurar las cuotas de tu API:
En el archivo que contiene las anotaciones delimitadas por API, añade lo siguiente a tu anotación @Api:
limitDefinitions = { @ApiLimitMetric( name = "[YOUR-METRIC-NAME]", displayName = "[YOUR-METRIC-DISPLAY-NAME]", limit = [YOUR-QUOTA-LIMIT]) }
- Reemplaza
[YOUR-METRIC-NAME]
por un nombre que describa el contador de peticiones de API. - Sustituye
[YOUR-METRIC-DISPLAY-NAME]
por el texto que se mostrará en el panel de control de Endpoints de la página Cuotas para identificar la cuota. Reemplaza
[YOUR-QUOTA-LIMIT]
por un valor entero. Este es el número de peticiones que puede realizar en un minuto una aplicación asociada al proyecto de Cloud de un cliente. Por ejemplo:@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), } )
- Reemplaza
Para cada método al que quieras aplicar una cuota, añade lo siguiente a la anotación @ApiMethod:
metricCosts = { @ApiMetricCost( name ="[YOUR-METRIC-NAME]", cost = [YOUR-COST]) }
- Sustituye
[YOUR-METRIC-NAME]
por un nombre que hayas especificado en el parámetrolimitDefinitions
de la anotación @Api. - Reemplaza
[YOUR-COST]
por un valor entero que indique el coste de cada petición.
Por ejemplo:
@ApiMethod(name = "echo", metricCosts = { @ApiMetricCost( name = "read-requests", cost = 1) }) public Message echo(Message message, @Named("n") @Nullable Integer n) { // ...function code here... }
- Sustituye
Consulta los siguientes enlaces para obtener más información sobre las anotaciones que se emplean en las cuotas.
Python
En este procedimiento se asume que ya has hecho lo siguiente:
- Has instalado la versión 2.4.5 (o una posterior) de la biblioteca de Endpoints Frameworks.
- Has creado la API.
- Has creado tu servidor de API.
- Has añadido la administración de la API.
- Has desplegado tu API.
- Has configurado tu API para usar una clave de API. Esta acción es necesaria para que Cloud Endpoints Frameworks pueda identificar el proyecto de Cloud al que está asociada la aplicación que realiza la llamada.
Para configurar las cuotas de tu API:
En el archivo que contiene el decorador de API, crea una lista de instancias
LimitDefinition
, como las siguientes:quota_limits = [ endpoints.LimitDefinition( "[YOUR-METRIC-NAME]", "[YOUR-METRIC-DISPLAY-NAME]", limit) ]
- Reemplaza
[YOUR-METRIC-NAME]
por un nombre que describa el contador de peticiones de API. - Sustituye
[YOUR-METRIC-DISPLAY-NAME]
por el texto que se mostrará en el panel de control de Endpoints de la página Cuotas para identificar la cuota. Reemplaza
limit
por un valor entero. Este es el número de peticiones que puede realizar en un minuto una aplicación asociada al proyecto de Cloud de un cliente. Por ejemplo:quota_limits = [ endpoints.LimitDefinition('read-requests', 'Read Requests', 1000), endpoints.LimitDefinition('list-requests', 'List Requests', 100), endpoints.LimitDefinition('write-requests', 'Write Requests', 50), ]
- Reemplaza
Para añadir tu cuota al decorador de API, debes asignarla al argumento
limit_definitions
. Por ejemplo:@endpoints.api(name='bookstore', version='v1', limit_definitions=quota_limits)
Para cada método al que quieras aplicar una cuota, asigna un diccionario al argumento
[metric_costs]
del decorador de método. La clave debe ser un nombre que hayas especificado en el argumentolimit_definitions
, en el decorador de API. El valor es un número entero que indica el coste de cada petición. Por ejemplo:@endpoints.method(path='shelves/{shelf}', http_method='GET', metric_costs={'read-requests': 1}) def get_shelf(self, request): # ...function code here...
Consulta los siguientes enlaces para obtener más información sobre los decoradores que se emplean en las cuotas.