Configurar cuotas

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:

Para configurar las cuotas de tu API:

  1. 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])
      }
    
    1. Reemplaza [YOUR-METRIC-NAME] por un nombre que describa el contador de peticiones de API.
    2. 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.
    3. 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),
          }
      )
      
  2. 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])
        }
    
    1. Sustituye [YOUR-METRIC-NAME] por un nombre que hayas especificado en el parámetro limitDefinitions de la anotación @Api.
    2. 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...
        }
    
  3. Despliega la API.

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:

Para configurar las cuotas de tu API:

  1. 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)
        ]
    
    1. Reemplaza [YOUR-METRIC-NAME] por un nombre que describa el contador de peticiones de API.
    2. 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.
    3. 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),
      ]
      
  2. 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)
    
  3. 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 argumento limit_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...
    
  4. Despliega la API.

Consulta los siguientes enlaces para obtener más información sobre los decoradores que se emplean en las cuotas.