Questa pagina descrive come configurare le quote per l'API in Cloud Endpoints Frameworks. Per una panoramica della funzionalità fornita dalle quote, consulta Informazioni sulle quote.
Java
Nella procedura riportata di seguito si presuppone che tu abbia già:
- Il codice scritto e annotato per la tua API.
- aggiunto la gestione dell'API;
- distribuito l'API;
- Configurato l'API in modo da utilizzare una chiave API. Ciò è necessario per consentire agli endpoint Framework di identificare il progetto Google Cloud a cui è associata l'applicazione chiamante. Per ulteriori informazioni, consulta Condivisione delle API protette da una chiave API.
Per configurare le quote nell'API:
Nel file che contiene le annotazioni basate sulle API, aggiungi quanto segue all'annotazione @Api:
limitDefinitions = { @ApiLimitMetric( name = "YOUR_METRIC_NAME", displayName = "YOUR_METRIC_DISPLAY_NAME", limit = YOUR_QUOTA_LIMIT) }
- Sostituisci
YOUR_METRIC_NAME
con un nome che descrive il contatore delle richieste dell'API. - Sostituisci
YOUR_METRIC_DISPLAY_NAME
con il testo visualizzato nella pagina Endpoint > Servizi > Quote per identificare la quota. Sostituisci
YOUR_QUOTA_LIMIT
con un numero intero. Questo è il numero di richieste che un'applicazione associata al progetto Google Cloud di un consumatore può effettuare al minuto. Ad esempio:@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), } )
- Sostituisci
Per ogni metodo a cui vuoi applicare una quota, aggiungi quanto segue all'annotazione
@ApiMethod
:metricCosts = { @ApiMetricCost( name ="YOUR_METRIC_NAME", cost = YOUR_COST) }
- Sostituisci
YOUR_METRIC_NAME
con un nome specificato nel parametrolimitDefinitions
dell'annotazione@Api
. Sostituisci
YOUR_COST
con un valore intero che specifica il costo per ogni richiesta.Ad esempio:
@ApiMethod(name = "echo", metricCosts = { @ApiMetricCost( name = "read-requests", cost = 1) }) public Message echo(Message message, @Named("n") @Nullable Integer n) { // ...function code here... }
- Sostituisci
Consulta quanto riportato di seguito per ulteriori informazioni sulle annotazioni utilizzate nelle quote:
Python
Nella procedura riportata di seguito si presuppone che tu abbia già:
- Installata versione 2.4.5 o successiva della libreria di Endpoints Frameworks.
- creato l'API;
- Aver creato un server web.
- aggiunto la gestione dell'API;
- distribuito l'API;
- Configurato l'API in modo da utilizzare una chiave API. Ciò è necessario per consentire agli endpoint Framework di identificare il progetto Google Cloud a cui è associata l'applicazione chiamante. Per ulteriori informazioni, consulta Condivisione delle API protette da una chiave API.
Per configurare le quote nell'API:
Nel file che contiene il decoratore dell'API, crea un elenco di istanze
LimitDefinition
, simile al seguente:quota_limits = [ endpoints.LimitDefinition( "YOUR_METRIC_NAME", "YOUR_METRIC_DISPLAY_NAME", limit) ]
- Sostituisci
YOUR_METRIC_NAME
con un nome che descriva il contatore delle richieste dell'API. - Sostituisci
YOUR_METRIC_DISPLAY_NAME
con il testo visualizzato nella pagina Endpoint > Servizi > Quote per identificare la quota. Sostituisci
limit
con un numero intero. Questo è il numero di richieste che un'applicazione associata al progetto Google Cloud di un consumer può effettuare al minuto. Ad esempio:quota_limits = [ endpoints.LimitDefinition('read-requests', 'Read Requests', 1000), endpoints.LimitDefinition('list-requests', 'List Requests', 100), endpoints.LimitDefinition('write-requests', 'Write Requests', 50), ]
- Sostituisci
Aggiungi la tua quota al decorator dell'API assegnandola all'argomento
limit_definitions
. Ad esempio:@endpoints.api(name='bookstore', version='v1', limit_definitions=quota_limits)
Per ogni metodo a cui vuoi applicare una quota, assegna un dizionario all'argomento
METRIC_COSTS
del decoratore del metodo. La chiave deve essere un nome specificato nell'argomentolimit_definitions
per il decorator dell'API e il valore deve essere un numero intero che specifica il costo per ogni richiesta. Ad esempio:@endpoints.method(path='shelves/{shelf}', http_method='GET', metric_costs={'read-requests': 1}) def get_shelf(self, request): # ...function code here...
Consulta quanto riportato di seguito per ulteriori informazioni sui decorator utilizzati nelle quote: