Questa pagina contiene le procedure di risoluzione dei problemi che potresti riscontrare con l'API Looker:
- L'endpoint API non è raggiungibile
- Il risultato dell'API è un testo senza senso
- Le chiamate API non rispondono
- Errori di codifica non validi
- Errori Method Not Found
- Errori di richiesta non valida (400)
- Errori non autorizzati (401)
- Errori di accesso non consentito (403)
- Errori 404 (Pagina non trovata)
- Errori Metodo non consentito (405)
- Errori CONFLICT (409)
- Errori di convalida (422)
- Errori Too Many Requests (429)
- Errori di tipo Errore interno del server (500)
L'endpoint API non è raggiungibile
Se non riesci a raggiungere un endpoint API:
- Verificare le credenziali API
- Verificare l'URL host dell'API
- Verifica la porta API
- Verificare l'URL della chiamata API
Verifica le credenziali API
Se l'endpoint API di Looker non è raggiungibile, verifica innanzitutto che le credenziali dell'API siano corrette. Per visualizzare le credenziali API:
- In Looker, accedi al pannello Amministrazione selezionando l'opzione Amministrazione nel pannello di navigazione a sinistra.
- Nel riquadro a sinistra della pagina Amministrazione, scorri verso il basso e fai clic su Utenti.
- Cerca il tuo nome utente nell'elenco degli utenti e fai clic su di esso per modificare la tua pagina utente.
- Fai clic su Modifica chiavi API. Puoi vedere l'ID client e fare clic sull'icona a forma di occhio per visualizzare il client secret per ogni chiave API configurata. Verifica che le credenziali dell'API corrispondano a quelle che utilizzi nello script.
Verifica l'URL dell'API
Un altro problema comune per raggiungere un endpoint API è un URL host dell'API errato. La maggior parte delle istanze di Looker utilizza l'URL predefinito per l'API. Tuttavia, le installazioni di Looker che utilizzano un percorso API alternativo o le installazioni di Looker situate dietro un bilanciatore del carico (ad esempio una configurazione di cluster) o qualsiasi altro proxy potrebbero non utilizzare l'URL predefinito. In questo caso, l'URL host dell'API deve indicare il nome host e la porta dell'API rivolta all'utente.
Gli amministratori di Looker possono vedere l'URL dell'host dell'API nelle impostazioni di amministrazione dell'API (descritte in modo più dettagliato nella pagina della documentazione Impostazioni amministrazione - API). Per visualizzare l'URL host dell'API:
- Accedi al pannello Amministrazione selezionando l'opzione Amministrazione nel pannello di navigazione a sinistra.
- Fai clic su API nel riquadro Amministrazione.
Visualizza l'URL host dell'API.
Se il campo URL host dell'API è vuoto, l'istanza di Looker utilizza il formato predefinito, ovvero:
https://<instance_name>.cloud.looker.com:<port>
Per testare l'URL host dell'API:
- Apri un browser e poi la relativa console.
Inserisci l'URL host dell'API seguito da
/alive
. Ad esempio, se l'URL host dell'API èhttps://company.cloud.looker.com
, inserisci:https://company.cloud.looker.com/alive
Se il campo URL host API è vuoto, utilizza l'URL API predefinito. Ad esempio, per le istanze ospitate su Google Cloud, Microsoft Azure e Amazon Web Services (AWS) create a partire dal 07/07/2020, il percorso predefinito dell'API Looker utilizza la porta
443
:https://<instance_name>.cloud.looker.com:443/alive
Per le istanze ospitate su AWS create prima del 07/07/2020, il percorso predefinito dell'API Looker utilizza la porta 19999:
https://<instance_name>.cloud.looker.com:19999/alive
Se l'URL dell'host dell'API è corretto, verrà visualizzata una pagina web vuota, non una pagina di errore.
Puoi anche verificare di aver raggiunto l'API esaminando la risposta di rete nella console del browser. La risposta della rete deve essere 200
.
Se questi controlli non vanno a buon fine, il problema potrebbe essere che stai chiamando l'API in modo errato o che ci sono altri errori nel codice. Controlla le chiamate API e il codice nello script. Se sono corretti, consulta la sezione successiva sulla verifica della porta.
Verifica la porta API
Se i controlli precedenti non vanno a buon fine e hai un deployment di Looker ospitato dal cliente, è possibile che la porta API debba essere aperta nell'infrastruttura di rete.
La porta API deve essere inoltrata al server Looker. Per i deployment di Looker ospitati dal cliente, chiedi all'amministratore di rete di controllare le impostazioni della porta API. La porta API è in genere 443
o 19999
. La porta API deve avere le stesse impostazioni di configurazione della porta dell'istanza di Looker (9999
per impostazione predefinita). L'amministratore di rete deve verificare che le seguenti impostazioni siano uguali per la porta API e per la porta dell'istanza di Looker:
- Proxy
- Bilanciatori del carico
- Firewall
Verifica l'URL della chiamata API
Verifica di utilizzare l'URL corretto per la chiamata API. Il formato dell'URL di un endpoint API è:
<API Host URL>/api/<API version>/<API call>
Se utilizzi l'URL host dell'API predefinito, il formato dell'URL dell'endpoint API è:
https://<instance_name>:<port>/api/<API version>/<API call>
Puoi ottenere il formato dell'URL per gli endpoint API da Explorer API o dalla documentazione del riferimento API.
Ad esempio, la pagina API 4.0 Reference fornisce il seguente percorso relativo per l'endpoint Get All Running Queries:
/api/4.0/running_queries
Pertanto, l'URL completo dell'endpoint API per l'endpoint Get All Running Queries nell'istanza di Looker docsexamples.dev.looker.com
è il seguente:
https://docsexamples.dev.looker.com:443/api/4.0/running_queries
Il risultato dell'API è un testo senza senso
Se l'API restituisce una risposta con testo illeggibile, è probabile che tu stia visualizzando i contenuti binari di un file PDF, PNG o JPG. Alcune librerie REST HTTP presuppongono che le risposte dell'API siano file di testo, pertanto altri tipi di file vengono visualizzati come testo binario.
In questo caso, devi assicurarti che la libreria REST HTTP gestisca la risposta dell'API come dati binari, non come testo. In alcuni casi, potrebbe essere necessario impostare un flag sulla chiamata API per indicare alla libreria REST HTTP che si tratta di un risultato binario oppure gestire il risultato in modo speciale, ad esempio come stream di byte o come array di byte, anziché assegnarlo a una variabile stringa.
Le chiamate API non rispondono
Se riesci ad aprire Explorer API, ma le chiamate API non rispondono, verifica che l'impostazione URL dell'host dell'API dell'istanza di Looker sia impostata correttamente. Gli amministratori di Looker possono vedere l'URL dell'host dell'API nelle impostazioni di amministrazione dell'API di Looker (descritte nella pagina della documentazione Impostazioni amministrazione - API).
Errori di codifica non validi
Se ricevi un errore di codifica durante il tentativo di effettuare una chiamata API, potrebbe essere necessario impostare Content-Type
appropriato nell'intestazione durante la richiesta. Gli standard del protocollo HTTP richiedono che qualsiasi richiesta POST, PUT o PATCH contenga un'intestazione Content-Type
. Poiché l'API Looker utilizza JSON, l'intestazione Content-Type
deve essere impostata su application/json
.
Tieni presente che l'utilizzo di un SDK Looker risolverà automaticamente questo problema.
Errori Metodo non trovato
Se ricevi un errore Method Not Found (Metodo non trovato), ad esempio method not found: all_looks()
, la prima cosa da controllare è la versione dell'API. Esistono diverse chiamate API nuove nell'API 4.0 o rimosse nell'API 4.0. Consulta l'annuncio API Looker 4.0 disponibile a livello generale per l'elenco degli aggiornamenti.
Errori di richiesta non valida (400)
Un errore 400 Bad Request
indica che i dati forniti in una chiamata API non sono riconoscibili. Spesso il problema è un JSON non valido o danneggiato, forse un errore di analisi. Per la maggior parte, gli errori 400 hanno già superato l'autenticazione, pertanto il messaggio di risposta all'errore fornirà informazioni più specifiche sull'errore.
Errori di mancata autorizzazione (401)
Un errore 401 Unauthorized
in una chiamata API indica che la chiamata API non è autenticata correttamente. Per ulteriori dettagli sulla risoluzione dei problemi, consulta l'articolo Come faccio a risolvere i problemi relativi agli errori 401? Articolo della scheda Community.
Errori di accesso negato (403)
L'API Looker non restituisce errori 403 ogni volta che un utente tenta di accedere a un oggetto LookML o ad altri contenuti per i quali non dispone dell'autorizzazione. In alcuni casi, la restituzione di un errore 403 anziché 404 potrebbe verificare l'esistenza di una determinata esplorazione, dashboard o oggetto LookML, anche se il proprietario preferirebbe che non fosse noto. Per evitare ciò, in questi casi Looker restituisce un codice 404 e l'errore associato nell'interfaccia utente di Looker è il seguente: "Impossibile trovare la pagina richiesta. Non esiste oppure non disponi dell'autorizzazione per visualizzarla."
A seconda dell'ambiente in cui è ospitata l'istanza di Looker e della relativa configurazione, il numero di porta e l'URL associato a cui è possibile accedere all'API potrebbero essere diversi. Se utilizzi un numero di porta errato, potresti visualizzare un errore 403. Ad esempio, se l'istanza di Looker è configurata con la porta API predefinita 443
, la connessione a https://mycompany.looker.com/api/4.0/login
anziché a https://mycompany.looker.com:443/api/4.0/login
restituirà un errore 403. Per le istanze ospitate dal cliente, puoi scoprire di più sulle opzioni di avvio di Looker, dove puoi definire la porta API.
Questo può accadere anche quando utilizzi una versione obsoleta del gem SDK Ruby. Assicurati di aggiornare queste gemme. Puoi controllare all'indirizzo https://rubygems.org/gems/looker-sdk
.
Questo può accadere anche se non includi la parte /api/<version number>/
dell'URL. In questo caso, se un utente tenta di connettersi a https://mycompany.looker.com:443/login
, vedrà una risposta 403.
Errori 404 (non trovato)
Un errore 404 Not Found
è l'errore predefinito se si verifica un problema, in genere con autorizzazioni. Il messaggio di risposta per un errore 404 fornisce informazioni minime, se presenti. Si tratta di un comportamento intenzionale, poiché gli errori 404 vengono mostrati agli utenti con credenziali di accesso errate o autorizzazioni insufficienti. Looker non vuole fornire informazioni specifiche nei messaggi di risposta 404, poiché queste informazioni potrebbero essere utilizzate per mappare la "superficie di attacco" dell'API Looker.
Se i tentativi di accesso all'API restituiscono errori 404, è molto probabile che l'ID client o il client secret dell'API non sia valido (vedi Verificare le credenziali dell'API in precedenza in questa pagina). L'endpoint REST di accesso all'API è il seguente:
https://<your-looker-hostname>:<port>/api/4.0/login
Se utilizzi un'API Swagger codegen o un SDK Looker, assicurati che il valore base_url
sia corretto:
Per un client Swagger codegen,
base_url
deve essere il seguente:https://<your-looker-hostname>:<port>/api/4.0/
Per le implementazioni dell'SDK Looker che utilizzano un
looker.ini
, il valore diapi_version
deve essere4.0
e il valore dibase_url
deve corrispondere all'URL dell'API dell'istanza Looker nel formatohttps://<your-looker-hostname>:<port>
. Di seguito è riportato un esempio di filelooker.ini
:# api_version should be 4.0 api_version=4.0 base_url=https://<your-looker-hostname>:<port>
Potresti anche ricevere un errore 404 dopo aver eseguito l'accesso. Se hai eseguito l'accesso e ricevi un errore 404, significa che non disponi delle autorizzazioni per il comando API che hai appena chiamato.
Errori Metodo non consentito (405)
Un errore 405 Method Not Allowed
indica che il server conosce il metodo di richiesta, ma la risorsa di destinazione non lo supporta.
Il server deve generare un campo dell'intestazione Allow
in una risposta con codice di stato 405. Il campo deve contenere un elenco di metodi supportati dalla risorsa di destinazione.
Ad esempio, potresti riscontrare questo problema in Looker se provi a utilizzare l'endpoint update_dashboard()
per aggiornare i metadati di una dashboard LookML. La modifica del parametro id
di una dashboard di LookML non è supportata tramite l'API Looker, pertanto si verifica un errore 405.
Errori di conflitto (409)
Il codice di stato della risposta 409 Conflict
indica un conflitto della richiesta con lo stato attuale della risorsa di destinazione.
I conflitti si verificano più spesso in risposta a una richiesta PUT. Un esempio comune di questo errore non relativo a Looker si verifica quando carichi un file precedente a quello esistente sul server, causando un conflitto di controllo della versione.
Potresti riscontrare questo errore in Looker quando provi a eseguire il check-out di un nuovo ramo Git utilizzando l'API o quando utilizzi endpoint come create_group()
o create_dashboard()
. In questi casi, controlla se l'oggetto che stai cercando di creare esiste già.
Errori di convalida (422)
Gli errori di convalida si verificano quando un elemento della richiesta non supera i controlli dei dati eseguiti. La richiesta presenta uno o più dei seguenti tipi di errori (la risposta di errore specificherà gli errori esatti):
- Mancano campi: un parametro obbligatorio non è stato fornito (la risposta di errore indica quale campo manca).
- Non valido: il valore fornito non corrisponde a un valore esistente o non è nel formato corretto. Ad esempio, se provi a creare un look e l'ID query fornito nella chiamata all'API non corrisponde a una query esistente, viene visualizzato un errore di convalida.
- Esiste già: la chiamata API sta tentando di creare un oggetto con un ID o un nome già presente nell'istanza di Looker. Ad esempio, i nomi delle connessioni al database devono essere univoci. Se provi a creare una nuova connessione al database che utilizza il nome di una connessione esistente, viene visualizzato un errore di convalida con il codice
already_exists
.
Consulta il messaggio di risposta all'errore per informazioni dettagliate sui campi che potrebbero essere mancanti o obbligatori o sui campi che potrebbero avere valori non validi. Il messaggio di risposta fornirà tutti gli errori di convalida contemporaneamente. Pertanto, se mancano campi e sono presenti campi errati, la risposta di errore elenca tutti i problemi relativi alla chiamata API.
Ecco un esempio di risposta:
{
"message": "Validation Failed",
"errors": [
{
"field": "dialect",
"code": "missing_field",
"message": "This field is required.",
"documentation_url": "http://docs.looker.com/"
},
{
"field": "db_timezone",
"code": "invalid",
"message": "Must specify a database timezone when user timezones are activated.",
"documentation_url": "http://docs.looker.com/"
}
],
...
In questo caso, nella chiamata API mancava il campo dialect
obbligatorio e il valore specificato in db_timezone
non era valido.
Errori di tipo Troppe richieste (429)
Il codice di stato di risposta 429 Too Many Requests
indica che l'utente ha inviato troppe richieste in un determinato periodo di tempo ("limitazione di frequenza"). Per scoprire di più sui criteri di limitazione di frequenza di Looker, consulta il post della community di Looker Esiste un limite al numero di richieste API che puoi inviare contemporaneamente?
Errori di tipo Errore interno del server (500)
Il codice di risposta 500 Internal Server Error
indica che il server ha riscontrato una condizione imprevista che gli ha impedito di soddisfare la richiesta.
Questa risposta di errore è una risposta generica "catch-all". In genere, questo indica che il server non riesce a trovare un codice di errore 5xx più specifico da restituire in risposta. Qualsiasi risposta 500 da Looker è imprevista, quindi, se visualizzi questo errore in modo coerente durante il tentativo di interagire con Looker, ti consigliamo di aprire una richiesta di assistenza.