Quota configureren

Op deze pagina wordt beschreven hoe u quota configureert voor uw API in Cloud Endpoints Frameworks. Ga naar Over quota voor een overzicht van de functionaliteit die wordt geboden door quota.

Java

In de volgende procedure wordt ervan uitgegaan dat u:

U configureert als volgt quota in de API:

  1. Voeg in het bestand met de annotaties voor het API-bereik het volgende toe aan uw @Api-annotatie:

      limitDefinitions = {
            @ApiLimitMetric(
              name = "[YOUR-METRIC-NAME]",
              displayName = "[YOUR-METRIC-DISPLAY-NAME]",
              limit = [YOUR-QUOTA-LIMIT])
      }
    
    1. Vervang [YOUR-METRIC-NAME] door een naam die een beschrijving geeft van de API-verzoekteller.
    2. Vervang [YOUR-METRIC-DISPLAY-NAME] door de tekst die wordt weergegeven in het Endpoints-dashboard op de pagina Quota om de quota te identificeren.
    3. Vervang [YOUR-QUOTA-LIMIT] door een geheel getal. Dit is het aantal verzoeken dat in een minuut kan worden gemaakt met een app die is gekoppeld aan het Cloud-project van een klant. Bijvoorbeeld:

      @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. Voor elke methode waarop u een quotum wilt toepassen, voegt u het volgende toe aan de @ApiMethod-annotatie:

        metricCosts = {
                     @ApiMetricCost(
                       name ="[YOUR-METRIC-NAME]",
                       cost = [YOUR-COST])
        }
    
    1. Vervang [YOUR-METRIC-NAME] door een naam die u heeft opgegeven in de parameter limitDefinitions in de @Api-annotatie.
    2. Vervang [YOUR-COST] door een geheel getal die de kosten voor elk verzoek aangeeft.

    Bijvoorbeeld:

        @ApiMethod(name = "echo",
                   metricCosts = {
                     @ApiMetricCost(
                       name = "read-requests",
                       cost = 1)
                   })
        public Message echo(Message message, @Named("n") @Nullable Integer n) {
          // ...function code here...
        }
    
  3. Implementeer de API.

Zie de volgende onderwerpen voor meer informatie over de annotaties die in quota worden gebruikt:

Python

In de volgende procedure wordt ervan uitgegaan dat u:

U configureert als volgt quota in de API:

  1. Maak in het bestand met de API-decorator een lijst met LimitDefinition-instanties, zoals:

        quota_limits = [
          endpoints.LimitDefinition(
            "[YOUR-METRIC-NAME]",
            "[YOUR-METRIC-DISPLAY-NAME]",
            limit)
        ]
    
    1. Vervang [YOUR-METRIC-NAME] door een naam die een beschrijving geeft van de API-verzoekteller.
    2. Vervang [YOUR-METRIC-DISPLAY-NAME] door de tekst die wordt weergegeven in het Endpoints-dashboard op de pagina Quota om de quota te identificeren.
    3. Vervang limit door een geheel getal. Dit is het aantal verzoeken dat in een minuut kan worden gemaakt met een app die is gekoppeld aan het Cloud-project van een klant. Bijvoorbeeld:

      quota_limits = [
        endpoints.LimitDefinition('read-requests', 'Read Requests', 1000),
        endpoints.LimitDefinition('list-requests', 'List Requests', 100),
        endpoints.LimitDefinition('write-requests', 'Write Requests', 50),
      ]
      
  2. Voeg het quotum toe aan de API-decorator door het toe te wijzen aan het argument limit_definitions. Bijvoorbeeld:

        @endpoints.api(name='bookstore',
                       version='v1',
                       limit_definitions=quota_limits)
    
  3. Voor elke methode waarop u een quotum wilt toepassen, wijst u een woordenboek toe aan het argument [metric_costs] van de methodedecorator. De sleutel moet een naam zijn die u in het argument limit_definitions voor de API-decorator heeft opgegeven en de waarde is een geheel getal dat de kosten voor elk verzoek aangeeft. Bijvoorbeeld:

        @endpoints.method(path='shelves/{shelf}',
                          http_method='GET',
                          metric_costs={'read-requests': 1})
        def get_shelf(self, request):
        # ...function code here...
    
  4. Implementeer de API.

Zie de volgende onderwerpen voor meer informatie over de decorators die in quota worden gebruikt: