En esta página se describe cómo configurar cuotas para tu API en Cloud Endpoints Frameworks. Para obtener información general sobre las funciones que ofrecen las cuotas, consulta el artículo Acerca de las cuotas.
Java
En este procedimiento se presupone que ya has hecho lo siguiente:
- Escribir y anotar el código de tu API.
- Has añadido la administración de la API.
- Has desplegado tu API.
- Has configurado tu API para que use una clave de API. Esto es necesario para que Endpoints Frameworks pueda identificar elGoogle Cloud proyecto al que está asociada la aplicación que llama. Consulta más información sobre cómo compartir APIs protegidas por claves de API.
Para configurar las cuotas de tu API:
En el archivo que contiene las anotaciones de ámbito de la 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) }
- Sustituye
YOUR_METRIC_NAME
por un nombre que describa el contador de solicitudes de API. - Sustituye
YOUR_METRIC_DISPLAY_NAME
por el texto que se muestra en la página Endpoints > Services > Quotas para identificar la cuota. Sustituye
YOUR_QUOTA_LIMIT
por un valor entero. Es el número de solicitudes que puede enviar en un minuto una aplicación asociada al proyecto de un consumidor. Google Cloud 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), } )
- Sustituye
Añada lo siguiente a la anotación
@ApiMethod
de cada método al que quiera aplicar una cuota: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
. Sustituye
YOUR_COST
por un valor entero que especifique el coste de cada solicitud.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 presupone que ya has hecho lo siguiente:
- Tener instalada la versión 2.4.5 o una posterior de la biblioteca Endpoints Frameworks.
- Has creado la API.
- Has creado un servidor web.
- Has añadido la administración de la API.
- Has desplegado tu API.
- Has configurado tu API para que use una clave de API. Esto es necesario para que Endpoints Frameworks pueda identificar elGoogle Cloud proyecto al que está asociada la aplicación que llama. Consulta más información sobre cómo compartir APIs protegidas por claves de API.
Para configurar las cuotas de tu API:
En el archivo que contiene el decorador de la API, crea una lista de instancias de
LimitDefinition
, como la siguiente:quota_limits = [ endpoints.LimitDefinition( "YOUR_METRIC_NAME", "YOUR_METRIC_DISPLAY_NAME", limit) ]
- Sustituye
YOUR_METRIC_NAME
por un nombre que describa el contador de solicitudes de API. - Sustituye
YOUR_METRIC_DISPLAY_NAME
por el texto que se muestra en la página Endpoints > Services > Quotas para identificar la cuota. Sustituye
limit
por un valor entero. Es el número de solicitudes que puede hacer en un minuto una aplicación asociada al proyecto de un consumidor de Google Cloud. 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), ]
- Sustituye
Añade tu cuota al decorador de la API asignándola al argumento
limit_definitions
. Por ejemplo:@endpoints.api(name='bookstore', version='v1', limit_definitions=quota_limits)
Asigna un diccionario al argumento
METRIC_COSTS
del decorador de método de cada método al que quieras aplicar una cuota. La clave debe ser un nombre que haya especificado en ellimit_definitions
argumento del decorador de la API, y el valor es un número entero que especifica el coste de cada solicitud. 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.