Questa pagina spiega come creare e gestire le chiavi API utilizzando l'API API Keys.
Per informazioni su come utilizzare una chiave API con le chiamate alle API Google Cloud , consulta Utilizzo delle chiavi API.
Prima di iniziare
La pagina utilizza curl e Google Cloud CLI per inviare richieste all'API API Keys. Per informazioni dettagliate su come configurare l'API per sperimentarla, consulta la sezione
Introduzione alle chiavi API.
Creazione di una chiave API
Puoi creare una chiave API utilizzando il metodo CreateKey. Il metodo richiede un parametro
Key.
Puoi specificare solo i campi displayName e restrictions dell'oggetto Key.
CreateKey non è un metodo sincrono. Quando effettui una chiamata
a CreateKey, avvii un'operazione
a lunga esecuzione. Il seguente esempio
emette una chiamata CreateKey per creare una chiave API senza limitazioni:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys -X POST -d '{"displayName" : "Example API key"}'In caso di esito positivo, il metodo restituisce un'operazione a lunga esecuzione nella risposta. Come
descritto in
Polling su operazioni a lunga esecuzione, effettui
ripetutamente chiamate operations.get
con il valore del campo name. Quando la risposta di operations.get
contiene "done": true, l'oggetto response contiene un Key, simile al
seguente:
{ "name": "operations/akmf.p7-103621867718-06f94db2-7e91-4c58-b826-e6b80e4dc3eb", "done": true, "response": { "@type": "type.googleapis.com/google.api.apikeys.v2.Key", "name": "projects/PROJECT_NUMBER/locations/global/keys/aecd7943-98ff-4ce2-a876-ec1b37c671ca", "displayName": "Example API key", "keyString": "----REDACTED----", "createTime": "2021-03-23T17:39:46.721099Z", "uid": "aecd7943-98ff-4ce2-a876-ec1b37c671ca", "updateTime": "2021-03-23T17:39:47.046746Z", "etag": "k0bsYGkIvSxDVwNxyw49NQ==" } }
Nell'oggetto response:
- Il campo
namecontiene un identificatore univoco per la chiave API. Utilizzi il valore nel camponamenegli altri metodi che richiedono un nome chiave. Questo valore non viene visualizzato nella console Google Cloud , ma puoi chiamare il metodoListKeysper ottenere ilnamesper tutte le tue chiavi API. Il campoKey.nameè sempre nel seguente formato:projects/PROJECT_NUMBER/locations/global/keys/KEY_ID. - Il campo
displayNameviene mappato al campoNamenella consoleGoogle Cloud , quindi ti consigliamo di fornire undisplayNamequando chiamiCreateKey. - Il campo
keyStringcontiene la stringa che invii alle API che richiedono una chiave API.keyStringcorrisponde al campoAPI keynella consoleGoogle Cloud . Puoi chiamare il metodoGetKeyStringper ottenere ilkeyStringper una chiave API. - Il campo
etagcontiene un checksum calcolato dal server in base al valore attuale della chiave. Trasmetti il valoreetagquando chiami i metodiUpdateKeyeDeleteKey.
ID chiave specificato dall'utente
Puoi specificare un
keyId
come parametro di query per il metodo CreateKey. Se specificato, il valore diventa il componente finale di Key.name.
Ad esempio, considera la seguente chiamata a CreateKey:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?keyId=my-test-key1 -X POST -d '{"displayName" : "Example API key"}'Per questo esempio, il campo Key.name ha il seguente valore:
"name": "projects/PROJECT_NUMBER/locations/global/keys/my-test-key1"
Aggiornamento del nome visualizzato
Per modificare il displayName di una chiave API o per aggiungere un displayName a una chiave API creata senza, chiama il metodo UpdateKey. Quando chiami UpdateKey, avvii un'operazione a lunga esecuzione che aggiorna la chiave.
L'esempio seguente illustra come chiamare UpdateKey:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID?updateMask=displayName -X PATCH -d '{"displayName": "New display name", "etag" : "ETAG"}'Quando la risposta di operations.get contiene "done": true, response
contiene un oggetto Key con displayName aggiornato.
Eliminazione di una chiave API
Per eliminare una chiave API, utilizza il metodo DeleteKey. Quando chiami DeleteKey, avvii un'operazione a lunga esecuzione che contrassegna la chiave come DELETED.
L'esempio seguente illustra come chiamare DeleteKey:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID?etag="ETAG" -X DELETE
Quando la risposta di operations.get contiene "done": true, response
è simile alla seguente:
{ "name": "operations/akmf.cdabc4df-cbff-4420-8c7e-65dc832c945d", "done": true, "response": { "@type": "type.googleapis.com/google.api.apikeys.v2.Key" "name": "projects/PROJECT_NUMBER/locations/global/keys/aecd7943-98ff-4ce2-a876-ec1b37c671ca", "displayName": "Example API key", "keyString": "----REDACTED----", "createTime": "2021-03-23T17:39:46.721099Z", "uid": "aecd7943-98ff-4ce2-a876-ec1b37c671ca", "updateTime": "2021-03-23T17:39:47.046746Z", "deleteTime": "2021-03-24T22:35:37.290544Z", "etag": "k0bsYGkIvSxDVwNxyw49NQ==" } }
Una chiave API contrassegnata come DELETED non può essere utilizzata, ma non viene
rimossa completamente dal nostro sistema. Per elencare le chiavi API ancora esistenti ma contrassegnate come DELETED, imposta show_deleted su true per il metodo ListKeys:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?show_deleted=true
Dopo 30 giorni, la chiave API viene eliminata definitivamente.
Ripristino di una chiave API
Per ripristinare una chiave API prima che venga eliminata definitivamente, chiama il metodo
UndeleteKey. Quando chiami UndeleteKey, avvii un'operazione a lunga esecuzione che contrassegna la chiave come ACTIVE.
L'esempio seguente illustra come chiamare UndeleteKey:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID/:undelete -X POST
Passaggi successivi
- Ottenere informazioni sulle chiavi API
- Aggiunta di limitazioni alle chiavi API
- Visualizzazione degli audit log di Cloud
- Risoluzione dei problemi