Configura cuotas

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:

Para configurar cuotas en tu API:

  1. 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),
            }
        )
      
  2. 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ámetro limitDefinitions 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...
        }
      
  3. Implementa la API.

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:

Para configurar cuotas en tu API:

  1. 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),
        ]
      
  2. Agrega tu cuota al decorador de API mediante el argumento limit_definitions. Por ejemplo:

      @endpoints.api(name='bookstore',
                     version='v1',
                     limit_definitions=quota_limits)
    
  3. 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 argumento limit_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...
    
  4. Implementa la API.

Consulta los siguientes vínculos para obtener más información sobre los decoradores usados en las cuotas: