Se imposti un requisito della chiave API nella tua API, le richieste al metodo protetto, alla classe o all'API vengono rifiutate a meno che non abbiano una chiave generata nel tuo progetto o in altri progetti appartenenti a sviluppatori a cui hai concesso l'accesso per abilitare la tua API. Il progetto in cui è stata creata la chiave API non viene registrato e non viene aggiunto all'intestazione della richiesta. Tuttavia, puoi visualizzare il Google Cloud progetto a cui è associato un client nella pagina Servizi endpoint , come descritto in Filtrare per un progetto consumer specifico.
Per informazioni sul Google Cloud progetto in cui deve essere creata una chiave API, consulta Condividere le API protette dalla chiave API.
Limitare l'accesso a tutti i metodi API
Per richiedere una chiave API per tutte le chiamate all'API, aggiungi
apiKeyRequired = AnnotationBoolean.TRUE al tuo
annotazione@Api.
Ad esempio:
@Api(
name = "echo",
version = "v1",
apiKeyRequired = AnnotationBoolean.TRUE
)
public class Echo {
//API class and methods...
}
Limitare l'accesso a metodi API specifici
Per richiedere una chiave API per tutte le chiamate a un metodo API specifico, aggiungi
apiKeyRequired = AnnotationBoolean.TRUE al tuo
annotazione@ApiMethod.
Ad esempio:
Per richiedere una chiave API per tutte le chiamate a una classe API specifica, aggiungi
apiKeyRequired = AnnotationBoolean.TRUE al tuo @ApiClass
annotazione.
Rimuovere la limitazione della chiave API per un metodo
Per disattivare la convalida della chiave API per un'API o un metodo API, rimuovi api_key_required=True (Python) o apiKeyRequired = AnnotationBoolean.TRUE (Java) dall'annotazione o dal decoratore del metodo o dell'API. Quindi, ricompila ed esegui di nuovo il deployment.
Chiamare un'API utilizzando una chiave API
Se un'API o un metodo API richiede una chiave API, fornisci la chiave utilizzando un parametro di ricerca denominato key, come mostrato in questo esempio di cURL:
curl \
-H "Content-Type: application/json" \
-X POST \
-d '{"message": "echo"}' \
"${HOST}/_ah/api/echo/v1/echo_api_key?key=${API_KEY}"
dove HOST e API_KEY sono variabili che contengono rispettivamente il nome host dell'API e la chiave API. Sostituisci echo con il nome dell'API e v1 con la versione dell'API.
Condividere le API protette dalla chiave API
Le chiavi API sono associate al Google Cloud progetto in cui sono state create. Se hai deciso di richiedere una chiave API per la tua API, il Google Cloud progetto in cui viene creata la chiave API dipende dalle risposte alle seguenti domande:
- Devi distinguere tra gli utenti che chiamano la tua API in modo da poter utilizzare le funzionalità di Endpoints come quote?
- Tutti gli utenti che chiamano la tua API hanno i propri Google Cloud progetti?
- Devi configurare limitazioni diverse per le chiavi API restrictions?
Puoi utilizzare la seguente struttura decisionale come guida per decidere in quale Google Cloud progetto creare la chiave API.
Concedere l'autorizzazione per abilitare l'API
Quando devi distinguere tra gli utenti che chiamano la tua API e ogni utente ha il proprio Google Cloud progetto, puoi concedere alle entità l'autorizzazione per abilitare l'API nel proprio Google Cloud progetto. In questo modo, gli utenti della tua API possono creare la propria chiave API da utilizzare con la tua API.
Supponiamo, ad esempio, che il tuo team abbia creato un'API per l'uso interno da parte di vari programmi client della tua azienda e che ogni programma client abbia il proprio Google Cloud progetto. Per distinguere tra gli utenti che chiamano la tua API, la chiave API per ogni utente deve essere creata in un progetto diverso Google Cloud . Puoi concedere ai tuoi colleghi l'autorizzazione per abilitare l'API nel Google Cloud progetto a cui è associato il programma client.
Per consentire agli utenti di creare la propria chiave API:
- Nel Google Cloud progetto in cui è configurata l'API, concedi a ogni utente l' autorizzazione per abilitare l' API.
- Contatta gli utenti e informa che possono abilitare la tua API nel proprio Google Cloud progetto e creare una chiave API.
Creare un progetto separato Google Cloud per ogni utente che chiama
Quando devi distinguere tra gli utenti che chiamano la tua API e non tutti gli utenti che chiamano hanno Google Cloud progetti, puoi creare un Google Cloud progetto e una chiave API separati per ogni utente che chiama. Prima di creare i progetti, valuta attentamente i nomi dei progetti in modo da poter identificare facilmente il chiamante associato al progetto.
Supponiamo, ad esempio, che tu abbia clienti esterni della tua API e che tu non sappia come sono stati creati i programmi client che chiamano la tua API. Forse alcuni client utilizzano Google Cloud servizi e hanno un Google Cloud progetto, e forse alcuni no. Per distinguere tra gli utenti che chiamano, devi creare un progetto e una chiave API separati Google Cloud per ogni utente che chiama.
Per creare un progetto e una chiave API separati Google Cloud per ogni utente che chiama:
- Crea un progetto separato per ogni utente che chiama.
- In ogni progetto, abilita l'API e crea una chiave API.
- Fornisci la chiave API a ogni utente che chiama.
Creare una chiave API per ogni utente che chiama
Quando non devi distinguere tra gli utenti che chiamano la tua API, ma vuoi aggiungere limitazioni alle chiavi API, puoi creare una chiave API separata per ogni utente che chiama nello stesso progetto.
Per creare una chiave API per ogni utente che chiama nello stesso progetto:
- Nel progetto in cui è configurata l'API o in un progetto in cui è abilitata la tua API, crea una chiave API per ogni cliente con le limitazioni alle chiavi API di cui hai bisogno.
- Fornisci la chiave API a ogni utente che chiama.
Creare una chiave API per tutti gli utenti che chiamano
Quando non devi distinguere tra gli utenti che chiamano la tua API e non devi aggiungere limitazioni alle API ma vuoi comunque richiedere una chiave API (per impedire l'accesso anonimo, ad esempio), puoi creare una chiave API da utilizzare per tutti gli utenti che chiamano.
Per creare una chiave API per tutti gli utenti che chiamano:- Nel progetto in cui è configurata l'API o in un progetto in cui la tua API è abilitata, crea una chiave API per tutti gli utenti che chiamano con le limitazioni alle chiavi API di cui hai bisogno.
- Fornisci la stessa chiave API a ogni utente che chiama.