Cette page contient des procédures de dépannage pour les problèmes suivants que vous pouvez rencontrer avec l'API Looker:
- Le point de terminaison de l'API n'est pas accessible
- Le résultat de l'API est un texte sans sens
- Les appels d'API ne répondent pas
- Erreurs d'encodage incorrect
- Erreurs "Méthode introuvable"
- Erreurs "Bad Request" (400)
- Erreurs "Non autorisé" (401)
- Erreurs "Forbidden" (403)
- Erreurs "Introuvable" (404)
- Erreurs "Méthode non autorisée" (405)
- Erreurs de conflit (409)
- Erreurs de validation (422)
- Erreurs "Trop de requêtes" (429)
- Erreurs "Internal Server Error" (500)
Le point de terminaison de l'API n'est pas accessible
Si vous ne parvenez pas à atteindre un point de terminaison d'API:
- Valider vos identifiants de l'API
- Vérifier l'URL de l'hôte de l'API
- Vérifier le port de l'API
- Vérifier l'URL de l'appel d'API
Valider vos identifiants d'API
Si votre point de terminaison de l'API Looker n'est pas accessible, vérifiez d'abord que vos identifiants d'API sont corrects. Pour afficher vos identifiants API:
- Dans Looker, accédez au panneau "Administration" en sélectionnant l'option Administration dans le panneau de navigation de gauche.
- Dans le panneau de gauche de la page Administration, faites défiler la page vers le bas, puis cliquez sur Utilisateurs.
- Recherchez votre nom d'utilisateur dans la liste des utilisateurs, puis cliquez dessus pour modifier votre page utilisateur.
- Cliquez sur Modifier les clés API. Vous pouvez voir l'ID client et cliquer sur l'icône en forme d'œil pour afficher le code secret du client pour chaque clé API que vous avez configurée. Vérifiez que vos identifiants d'API correspondent à ceux que vous utilisez dans votre script.
Vérifier l'URL de l'API
Un autre problème courant pour accéder à un point de terminaison d'API est une URL d'hôte d'API incorrecte. La plupart des instances Looker utilisent l'URL par défaut de l'API. Toutefois, les installations Looker qui utilisent un autre chemin d'API ou qui se trouvent derrière un équilibreur de charge (par exemple, une configuration de cluster) ou tout autre proxy peuvent ne pas utiliser l'URL par défaut. Dans ce cas, l'URL de l'hôte de l'API doit indiquer le nom d'hôte et le port de l'API destinés à l'utilisateur.
Les administrateurs Looker peuvent voir l'URL de l'hôte de l'API dans les paramètres d'administration de l'API (décrits plus en détail sur la page de documentation Paramètres d'administration – API). Pour afficher l'URL de l'hôte de l'API:
- Accédez au panneau "Admin" en sélectionnant l'option Admin dans le panneau de navigation de gauche.
- Cliquez sur API dans le panneau Administration.
Affichez l'URL de l'hôte de l'API.
Si le champ URL de l'hôte de l'API est vide, votre instance Looker utilise le format par défaut, qui est le suivant:
https://<instance_name>.cloud.looker.com:<port>
Pour tester l'URL de l'hôte de l'API:
- Ouvrez un navigateur, puis la console du navigateur.
Saisissez votre URL d'hôte de l'API, suivie de
/alive
. Par exemple, si votre URL d'hôte de l'API esthttps://company.cloud.looker.com
, saisissez:https://company.cloud.looker.com/alive
Si le champ URL de l'hôte de l'API est vide, utilisez l'URL de l'API par défaut. Par exemple, pour les instances hébergées sur Google Cloud, Microsoft Azure et Amazon Web Services (AWS) créées le 07/07/2020 ou après, le chemin d'accès par défaut de l'API Looker utilise le port
443
:https://<instance_name>.cloud.looker.com:443/alive
Pour les instances hébergées sur AWS créées avant le 07/07/2020, le chemin d'accès par défaut de l'API Looker utilise le port 19999:
https://<instance_name>.cloud.looker.com:19999/alive
Si l'URL de l'hôte de l'API est correcte, elle renvoie une page Web vide, et non une page d'erreur.
Vous pouvez également vérifier que vous avez bien accédé à l'API en examinant la réponse réseau dans la console de votre navigateur. La réponse réseau doit être 200
.
Si ces vérifications échouent, le problème peut être que vous appelez l'API de manière incorrecte ou que votre code contient d'autres erreurs. Vérifiez vos appels d'API et le code de votre script. Si c'est le cas, consultez la section suivante sur la vérification de votre port.
Vérifier le port de l'API
Si les vérifications précédentes échouent et que vous disposez d'un déploiement Looker hébergé par le client, il est possible que le port de l'API doive être ouvert sur l'infrastructure réseau.
Le port de l'API doit être transféré vers le serveur Looker. Pour les déploiements de Looker hébergés par un client, demandez à votre administrateur réseau de vérifier les paramètres de port de l'API. Le port de l'API est généralement 443
ou 19999
. Le port de l'API doit avoir les mêmes paramètres de configuration que le port de l'instance Looker (9999
par défaut). Votre administrateur réseau doit vérifier que les paramètres suivants sont identiques pour le port de l'API et pour le port de votre instance Looker:
- les proxys ;
- Équilibreurs de charge
- Pare-feu
Vérifier l'URL d'appel de l'API
Vérifiez que vous utilisez la bonne URL pour votre appel d'API. Le format d'une URL de point de terminaison d'API est le suivant:
<API Host URL>/api/<API version>/<API call>
Si vous utilisez l'URL d'hôte de l'API par défaut, l'URL d'un point de terminaison d'API se présente comme suit:
https://<instance_name>:<port>/api/<API version>/<API call>
Vous pouvez obtenir le format d'URL des points de terminaison de l'API dans l'explorateur d'API ou dans la documentation de référence de l'API.
Par exemple, la documentation de référence de l'API 4.0 indique le chemin relatif suivant pour le point de terminaison "Get All Running Queries" (Obtenir toutes les requêtes en cours d'exécution) :
/api/4.0/running_queries
Par conséquent, l'URL complète du point de terminaison de l'API pour le point de terminaison "Get All Running Queries" (Obtenir toutes les requêtes en cours d'exécution) de l'instance Looker docsexamples.dev.looker.com
est la suivante:
https://docsexamples.dev.looker.com:443/api/4.0/running_queries
Le résultat de l'API est un texte incompréhensible
Si l'API renvoie un texte illisible, il est probable que vous voyiez le contenu binaire d'un fichier PDF, PNG ou JPG. Certaines bibliothèques REST HTTP supposent que les réponses de l'API seront des fichiers texte. Par conséquent, d'autres types de fichiers sont affichés en texte binaire.
Dans ce cas, vous devez vous assurer que votre bibliothèque REST HTTP gère la réponse de l'API en tant que données binaires, et non en tant que texte. Dans certains cas, cela peut impliquer de définir un indicateur sur l'appel d'API pour indiquer à la bibliothèque REST HTTP qu'il s'agit d'un résultat binaire, ou de gérer le résultat de manière spéciale, par exemple en tant que flux d'octets ou en tant que tableau d'octets, au lieu d'attribuer le résultat à une variable de chaîne.
Les appels d'API ne répondent pas
Si vous pouvez ouvrir l'explorateur d'API, mais que vos appels d'API ne répondent pas, vérifiez que le paramètre URL hôte de l'API de votre instance Looker est correctement défini. Les administrateurs Looker peuvent voir l'URL de l'hôte de l'API dans les paramètres d'administration de l'API Looker (décrits sur la page de documentation Paramètres d'administration – API).
Erreurs d'encodage non valides
Si vous recevez une erreur d'encodage lorsque vous essayez d'effectuer un appel d'API, vous devrez peut-être définir le Content-Type
approprié dans votre en-tête lors de la requête. Les normes du protocole HTTP exigent que toute requête POST, PUT ou PATCH contienne un en-tête Content-Type
. Étant donné que l'API Looker utilise le format JSON tout au long, l'en-tête Content-Type
doit être défini sur application/json
.
Notez que l'utilisation d'un SDK Looker gère automatiquement ce problème.
Erreurs de type "Méthode introuvable"
Si vous recevez une erreur "Méthode introuvable", comme method not found: all_looks()
, commencez par vérifier la version de votre API. Plusieurs appels d'API sont nouveaux dans l'API 4.0 ou ont été supprimés dans l'API 4.0. Pour obtenir la liste des mises à jour, consultez l'annonce Disponibilité générale de l'API Looker 4.0.
Erreurs "Bad Request" (400)
Une erreur 400 Bad Request
indique que les données fournies dans un appel d'API sont non identifiables. Le problème est souvent lié à un code JSON défectueux ou non valide, peut-être à une erreur d'analyse. Dans la plupart des cas, les erreurs 400 ont déjà passé l'authentification. Le message de réponse d'erreur fournit donc des informations plus spécifiques sur l'erreur.
Erreurs "Non autorisé" (401)
Une erreur 401 Unauthorized
sur un appel d'API signifie que l'appel d'API n'est pas correctement authentifié. Pour en savoir plus sur le dépannage, consultez Comment résoudre les erreurs 401 ? Article de la communauté.
Erreurs "Forbidden" (403)
L'API Looker ne renvoie pas d'erreurs 403 chaque fois qu'un utilisateur tente d'accéder à un objet LookML ou à un autre contenu pour lequel il n'est pas autorisé. Dans certains cas, renvoyer une erreur 403 au lieu d'une erreur 404 peut confirmer l'existence d'une exploration, d'un tableau de bord ou d'un objet LookML particulier, alors que le propriétaire préfèrerait que cela ne soit pas connu. Pour éviter cela, Looker renvoie un code 404 dans ces cas, et l'erreur associée dans l'interface utilisateur de Looker indique: "La page que vous avez demandée n'a pas été trouvée. Il n'existe pas ou vous n'êtes pas autorisé à le consulter."
En fonction de l'environnement dans lequel votre instance Looker est hébergée et de sa configuration, le numéro de port et l'URL associée à laquelle l'API est accessible peuvent être différents. Si vous utilisez un numéro de port incorrect, une erreur 403 peut s'afficher. Par exemple, si votre instance Looker est configurée avec le port d'API par défaut 443
, la connexion à https://mycompany.looker.com/api/4.0/login
(au lieu de https://mycompany.looker.com:443/api/4.0/login
) renvoie une erreur 403. Pour les instances hébergées par le client, consultez les options de démarrage de Looker, qui vous permettent de définir le port de l'API.
Cela peut également se produire lorsque vous utilisez une version obsolète du gem du SDK Ruby. Veillez à les mettre à jour régulièrement. Vous pouvez le vérifier sur https://rubygems.org/gems/looker-sdk
.
Cela peut également se produire lorsque vous n'incluez pas la partie /api/<version number>/
de l'URL. Dans ce cas, si un utilisateur tente de se connecter à https://mycompany.looker.com:443/login
, il verra une réponse 403.
Erreurs "Introuvable" (404)
Une erreur 404 Not Found
est l'erreur par défaut qui s'affiche en cas de problème, généralement lié aux autorisations. Le message de réponse d'une erreur 404 fournit des informations minimales, le cas échéant. Cela est intentionnel, car les erreurs 404 s'affichent pour les utilisateurs dont les identifiants de connexion sont incorrects ou dont les autorisations sont insuffisantes. Looker ne souhaite pas fournir d'informations spécifiques dans les messages de réponse 404, car ces informations pourraient être utilisées pour cartographier la "surface d'attaque" de l'API Looker.
Si les tentatives de connexion à l'API renvoient des erreurs 404, cela est probablement dû au fait que votre ID client ou votre code secret du client de l'API ne sont pas valides (voir Valider vos identifiants API plus haut sur cette page). Le point de terminaison REST de connexion de l'API est le suivant:
https://<your-looker-hostname>:<port>/api/4.0/login
Si vous utilisez une API de génération de code Swagger ou un SDK Looker, assurez-vous que la valeur base_url
est correcte:
Pour un client de génération de code Swagger,
base_url
doit être le suivant:https://<your-looker-hostname>:<port>/api/4.0/
Pour les implémentations du SDK Looker qui utilisent un
looker.ini
, la valeur deapi_version
doit être4.0
, et la valeur debase_url
doit être identique à l'URL de l'API de votre instance Looker au formathttps://<your-looker-hostname>:<port>
. Voici un exemple de fichierlooker.ini
:# api_version should be 4.0 api_version=4.0 base_url=https://<your-looker-hostname>:<port>
Une erreur 404 peut également s'afficher après la connexion. Si vous êtes connecté et que vous obtenez une erreur 404, cela signifie que vous ne disposez pas des autorisations pour la commande d'API que vous venez d'appeler.
Erreurs "Méthode non autorisée" (405)
Une erreur 405 Method Not Allowed
indique que le serveur connaît la méthode de requête, mais que la ressource cible n'est pas compatible avec cette méthode.
Le serveur doit générer un champ d'en-tête Allow
dans une réponse avec code d'état 405. Le champ doit contenir une liste des méthodes compatibles avec la ressource cible.
Par exemple, vous pouvez rencontrer ce problème dans Looker si vous essayez d'utiliser le point de terminaison update_dashboard()
pour mettre à jour les métadonnées d'un tableau de bord LookML. La modification du paramètre id
d'un tableau de bord LookML n'est pas prise en charge par l'API Looker. Par conséquent, une erreur 405 se produit.
Erreurs de conflit (409)
Le code d'état de réponse 409 Conflict
indique un conflit de requête avec l'état actuel de la ressource cible.
Les conflits sont plus susceptibles de se produire en réponse à une requête PUT. Un exemple courant de cette erreur (hors Looker) se produit lors de l'importation d'un fichier plus ancien que celui existant sur le serveur, ce qui entraîne un conflit de contrôle des versions.
Cette erreur peut se produire dans Looker lorsque vous essayez de récupérer une nouvelle branche git à l'aide de l'API ou lorsque vous utilisez des points de terminaison tels que create_group()
ou create_dashboard()
. Dans ce cas, vérifiez si l'objet que vous essayez de créer existe déjà.
Erreurs de validation (422)
Les erreurs de validation se produisent lorsqu'un élément de la requête a échoué aux vérifications des données effectuées. La requête comporte un ou plusieurs des types d'erreurs suivants (la réponse d'erreur spécifie les erreurs exactes):
- Champs manquants: un paramètre obligatoire n'a pas été fourni (la réponse d'erreur indique le champ manquant).
- Non valide: la valeur fournie ne correspond pas à une valeur existante ou n'est pas au bon format. Par exemple, si vous essayez de créer un look et que l'ID de requête que vous fournissez dans l'appel d'API ne correspond pas à une requête existante, une erreur de validation s'affiche.
- Existe déjà: l'appel d'API tente de créer un objet avec un ID ou un nom déjà présent dans votre instance Looker. Par exemple, les noms de connexion à la base de données doivent être uniques. Si vous essayez de créer une connexion de base de données qui utilise le nom d'une connexion existante, une erreur de validation s'affiche avec le code
already_exists
.
Consultez le message de réponse d'erreur pour savoir quels champs peuvent être manquants ou obligatoires, ou dont les valeurs peuvent être non valides. Le message de réponse fournit toutes les erreurs de validation en même temps. Par conséquent, si des champs sont manquants ou incorrects, la réponse d'erreur indiquera tous les problèmes liés à votre appel d'API.
Voici un exemple de réponse:
{
"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/"
}
],
...
Dans ce cas, le champ dialect
obligatoire était manquant dans l'appel d'API, et une valeur non valide était indiquée dans db_timezone
.
Erreurs "Trop de requêtes" (429)
Le code d'état de réponse 429 Too Many Requests
indique que l'utilisateur a envoyé trop de requêtes dans un laps de temps donné ("limitation du débit"). Pour en savoir plus sur les règles de limitation du débit de Looker, consultez l'article de la communauté Looker Le nombre de requêtes API que vous pouvez envoyer en même temps est-il limité ?
Erreurs "Erreur interne du serveur" (500)
Le code de réponse 500 Internal Server Error
indique que le serveur a rencontré une condition inattendue qui l'a empêché de répondre à la requête.
Cette réponse d'erreur est une réponse générique "tout-en-un". En général, cela signifie que le serveur ne parvient pas à trouver un code d'erreur 5xx plus spécifique à renvoyer en réponse. Toute réponse 500 de Looker est inattendue. Par conséquent, si cette erreur s'affiche de manière récurrente lorsque vous essayez d'interagir avec Looker, nous vous recommandons d'envoyer une demande d'assistance.