En esta página, se describe cómo configurar cuotas para tu API en Cloud Endpoints Frameworks. Para obtener una descripción general de la funcionalidad que proporcionan las cuotas, consulta la información de las cuotas.
Java
En este procedimiento, se supone que ya hiciste lo siguiente:
- Escribiste y anotaste el código para tu API.
- Agregaste administración de API.
- Implementaste tu API.
- Configuraste tu API para que use una clave de API. Esto es necesario para que Endpoints Frameworks pueda identificar el proyecto de Google Cloud al que está asociada la aplicación de llamada. Consulta Cómo compartir las API protegidas por una clave de API para obtener más información.
Para configurar cuotas en tu API:
En el archivo que contiene las anotaciones con alcance de API, agrega lo siguiente a la 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 recuento de solicitudes a la API. - Reemplaza
YOUR_METRIC_DISPLAY_NAME
por el texto que se muestra en la página Endpoints > Servicios > Cuotas para identificar la cuota. Reemplaza
YOUR_QUOTA_LIMIT
por un número entero. Esta es la cantidad de solicitudes que una aplicación asociada a un proyecto de Google Cloud del consumidor puede realizar en un minuto. 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 le quieras aplicar una cuota, agrega lo siguiente a la anotación
@ApiMethod
:metricCosts = { @ApiMetricCost( name ="YOUR_METRIC_NAME", cost = YOUR_COST) }
- Reemplaza
YOUR_METRIC_NAME
por el nombre que especificaste en el parámetrolimitDefinitions
de la anotación@Api
. Reemplaza
YOUR_COST
por un número entero que especifique el costo 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... }
- Reemplaza
Consulta los siguientes vínculos para obtener más información sobre las anotaciones usadas en cuotas:
Python
En este procedimiento, se da por sentado que ya hiciste lo siguiente:
- Instalaste la versión 2.4.5 o posterior de la biblioteca de Endpoints Frameworks.
- Creaste tu API.
- Creaste un servidor web.
- Agregaste la administración de la API.
- Implementaste tu API.
- Configuraste tu API para que use una clave de API. Esto es necesario para que Endpoints Frameworks pueda identificar el proyecto de Google Cloud al que está asociada la aplicación de llamada. Consulta Cómo compartir las API protegidas por una clave de API para obtener más información.
Para configurar cuotas en tu API:
En el archivo que contiene el decorador de API , crea una lista de instancias
LimitDefinition
, similar a la siguiente:quota_limits = [ endpoints.LimitDefinition( "YOUR_METRIC_NAME", "YOUR_METRIC_DISPLAY_NAME", limit) ]
- Reemplaza
YOUR_METRIC_NAME
por un nombre que describa el recuento de solicitudes a la API. - Reemplaza
YOUR_METRIC_DISPLAY_NAME
por el texto que se muestra en la página Endpoints > Servicios > Cuotas para identificar la cuota. Reemplaza
limit
por un número entero. Esta es la cantidad de solicitudes que una aplicación asociada a un proyecto de Google Cloud del consumidor puede realizar en un minuto. 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
Agrega tu cuota al decorador de API mediante el 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étodos . La clave debe ser un nombre que especificaste en el argumentolimit_definitions
para el decorador de API y el valor es un número entero que especifica el costo 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 vínculos para obtener más información sobre los decoradores usados en las cuotas: