Je maîtrise l'explorateur d'API de Looker. Comment rejoindre un GDG

Grâce à l'explorateur d'API de Looker, les utilisateurs peuvent tester les appels d'API presque instantanément, sans avoir à écrire une seule ligne de code. Si vous avez installé l'extension APIs Explorer à partir de Looker Marketplace, vous pouvez cliquer sur API Explorer (Explorateur d'API) dans le menu Applications Looker pour ouvrir l'explorateur d'API et consulter la documentation actuelle de l'API. Si vous n'avez pas installé l'extension APIs Explorer, vous pouvez l'installer depuis la section Applications de Looker Marketplace.

Peut-être avez-vous trouvé le meilleur workflow pour créer une présentation dynamiquement, mettre à jour la requête sous-jacente et planifier son envoi aux différentes personnes concernées dans votre entreprise, grâce à l'explorateur d'API. Une question revient souvent : comment exécuter ces appels ou fonctions en dehors d'API Explorer ? Il existe trois façons courantes d'accéder à l'API:

  1. Kits de développement logiciel (SDK) de l'API Looker
  2. Requêtes HTTP
  3. Outils de développement logiciel

Cette page explique comment utiliser ces méthodes.

Avant de commencer: authentification et ports

Quelle que soit la manière dont vous accédez à l'API de Looker, vous aurez d'abord besoin de deux informations: votre authentification personnelle de l'API (sous la forme d'un ID client et d'un code secret du client) et le numéro de port utilisé par votre instance Looker.

Pour trouver un ID client et un code secret du client:

  • Si vous êtes un administrateur Looker, accédez à la page Utilisateurs de l'UI Looker pour l'utilisateur qui vous intéresse, puis à Modifier des clés.
  • Si vous n'êtes pas administrateur Looker, votre administrateur Looker vous aura envoyé votre ID et votre code secret du client.
En ce qui concerne votre ID client et le code secret du client, il est important de ne partager ces clés avec personne.

Pour les instances Looker hébergées sur Google Cloud ou Microsoft Azure, ainsi que pour celles hébergées sur Amazon Web Service (AWS) créées à partir du 07/07/2020, le chemin d'accès à l'API Looker par défaut utilise le port 443. Pour les instances Looker hébergées sur AWS et créées avant le 07/07/2020, le chemin d'API Looker par défaut utilise le port 19999.

Si vous hébergez votre propre instance, renseignez-vous auprès de votre administrateur système pour obtenir le numéro de port. Elle peut être définie dans le champ URL de l'hôte de l'API du panneau d'administration de Looker. Pour le vérifier, accédez au menu déroulant Administration dans Looker et sélectionnez API.

Pour en savoir plus sur les ports, consultez la page de documentation Premiers pas avec l'API Looker. Les exemples suivants utilisent le port d'API 19999, mais vous devez confirmer le port utilisé par votre instance.

Option 1: Utiliser un software development kit (kit de développement logiciel, ou SDK) Looker

Looker propose des SDK clients officiels de l'API Looker en Python, Ruby, Typescript et JavaScript, Swift, Kotlin et R. Vous trouverez du code source et des exemples dans le dépôt GitHub sdk-examples de Looker.

Un SDK fournit des outils ou des bibliothèques qui permettent aux développeurs d'interagir avec une plate-forme ou une application donnée. Dans ce cas, les SDK de Looker contiennent généralement des API. Pour reprendre l'exemple de l'auteur et développeur Web Kristopher Sandoval, "les API sont des lignes téléphoniques, qui permettent de communiquer à l'intérieur et à l'extérieur de la maison. Le SDK est la maison elle-même, avec tout son contenu." Il explique ce qu'est un SDK et en quoi il est lié aux API dans un excellent article : Quelle est la différence entre une API et un SDK ?.

Les SDK de Looker hébergent tous les points de terminaison d'API que vous souhaitez ou avez besoin d'utiliser. Ils sont empaquetés de manière à vous permettre d'interagir facilement avec Looker à l'aide du langage de programmation de votre choix. Elles vous permettent d'effectuer les tâches suivantes:

  • Envoyer des données à Looker
  • Obtenir des données à partir de Looker
  • Mettre à jour des données dans Looker
  • Supprimer des données dans Looker
Nous verrons plus en détail les différences entre ces actions dans la section suivante.

Voici un exemple de mise à jour d'un utilisateur avec le SDK Python:

  1. Initialisez la session avec looker_sdk.init.
  2. Mettez à jour l'utilisateur avec sdk.update_user. Vous transmettez user_id pour spécifier l'utilisateur que vous souhaitez mettre à jour.
  3. Utilisez models.WriteUser pour spécifier la manière dont vous souhaitez mettre à jour l'utilisateur.

    #### Initialize API/SDK for more info go here: https://pypi.org/project/looker-sdk
    from looker_sdk import methods40, models
    sdk = looker_sdk.init40()
    me = sdk.me()
    # print(me)
    new_friend = sdk.update_user(user_id=29,
    body=models.WriteUser(first_name="newnew", last_name="new_again"))
    print(new_friend)
  

Lorsque vous utilisez l'un de nos SDK, si vous utilisez un IDE tel que Visual Studio Code et que vous effectuez un clic de commande (F12 dans les paramètres par défaut de Visual Studio Code), puis sélectionnez Accéder aux définitions, vous pouvez afficher toutes les méthodes et tous les paramètres acceptés ou renvoyés par ces méthodes. Vous pouvez également les voir dans le dépôt GitHub du SDK. Recherchez des méthodes et des fichiers de modèle.

Option 2: Requêtes HTTP avec curl ou une bibliothèque de requêtes

Que faire si vous ne voulez pas écrire un script ou passer des mois ou des années à apprendre un nouveau langage de programmation ? Dans ce cas, vous pouvez utiliser curl pour effectuer des requêtes HTTP afin d'utiliser l'API de Looker.

Une requête HTTP envoie un message à une destination, qui peut être un serveur, un téléphone ou même votre smart TV. Il existe différents types de requêtes HTTP. La manière dont vous utilisez ces requêtes avec l'API de Looker dépend de la nature de la méthode transmise dans le cadre de l'appel d'API. Certaines méthodes vous permettent d'obtenir des données, d'autres d'envoyer des données à Looker, d'autres de mettre à jour des données, ou encore de supprimer ou retirer des données de Looker.

Action Méthode
Créer POST
Read GET
Mettre à jour PUT
Supprimer DELETE

Commençons au curling. Pour rappel, Zendesk propose un excellent tutoriel : Installer et utiliser cURL.

Pour commencer à effectuer des appels HTTP vers l'API Looker, la première chose à faire est d'appeler le point de terminaison login de l'API Looker à l'aide de votre ID client et de votre code secret du client. Cette opération crée un jeton d'accès. Vous prenez ensuite ce jeton d'accès et le transmettez à chaque appel. Le jeton d'accès garantit que l'appel provient d'un utilisateur autorisé.

Cette page utilise quelques notations pour indiquer où vous devez remplacer le texte de l'exemple de code par vos informations. Les URL des instances hébergées par Looker se présentent au format https://<hostname>.<subdomain>.<domain>.com. Si cette notation est utilisée dans les exemples de cette page, remplacez la section <hostname>.<subdomain>.<domain>.com par l'URL de votre instance Looker. De plus, nous utilisons la notation <value> pour indiquer où vous devez saisir la valeur appropriée, en remplaçant la valeur <value> dans l'exemple de code. Par exemple, dans le code suivant, qui affiche client_id=<value>&client_secret=<value>, remplacez le premier <value> par votre client_id et le second <value> par votre client_secret.

Voici la page curl pour obtenir le jeton d'accès:

  curl -d "client_id=<value>&client_secret=<value>" https://<hostname>.<subdomain>.<domain>.com:19999/login
  

Voici la réponse :

  {"access_token":"ABCDEFGHIJLMNOP1234","token_type":"Bearer","expires_in":3600}
  

La réception du jeton vous indique que Looker reconnaît vos identifiants d'API. Le jeton est renvoyé avec une valeur expires_in, qui indique sa durée de validité. Elle dure souvent environ 60 minutes (3 600 secondes).

Maintenant que vous disposez d'un jeton d'accès, vous êtes libre de passer tous les appels de votre choix. Tous les points de terminaison sont répertoriés par version d'API dans la documentation de référence de l'API Looker 4.0. Et n'oubliez pas que le site de la communauté Looker est une excellente ressource pour poser des questions aux autres utilisateurs de Looker sur leur utilisation de l'API, pour découvrir les bonnes pratiques ou pour partager avec d'autres utilisateurs les réussites que vous avez obtenues avec l'API.

Supposons que vous souhaitiez créer un utilisateur. Procédez comme suit :

  1. Écrivez une requête curl POST qui transmet votre jeton pour indiquer à Looker que vous êtes autorisé.
  2. Incluez un corps (dans ce cas au format JSON) pour indiquer à Looker les attributs que vous souhaitez attribuer au nouvel utilisateur. Certains champs sont obligatoires pour les appels d'API. Veuillez donc consulter la documentation de référence de l'API Looker 4.0.
  3. Terminez la notation curl par le point de terminaison que vous souhaitez utiliser (dans ce cas, users).

  curl -H "Authorization: token <value>
  " -H "Content-Type: application/json" -d "{\"first_name\": \"<value>\",\"last_name\": \"<value>\", \"email\":\"<value>\"}" https://<hostname>.<subdomain>.<domain>.com:19999/api/4.0/users

-H signifie en-tête et -d signifie données. Pour en savoir plus sur les commandes curl, consultez cet article d'aide GitHub.

Vous venez de créer un utilisateur avec le prénom, le nom et l'adresse e-mail contenant les valeurs que vous avez saisies précédemment.

Comment faire si vous souhaitez utiliser un script pour ne pas avoir à écrire ces commandes chaque fois que vous voulez suivre ce workflow ? Vous pouvez utiliser un langage et une bibliothèque de programmation comme la bibliothèque requests de Python.

Par exemple, voici un script qui utilise la bibliothèque requests pour obtenir un Look à l'aide de son ID (<value> dans l'appel looks), d'appliquer un nouveau filtre, puis de télécharger les résultats au format CSV:

  import requests
  ID = '<value>'
  SECRET = '<value>'
  PARAMS = {'client_id':<value>,
            'client_secret': <value>}
  URL = "https://<hostname>.<subdomain>.<domain>.com:19999/api/4.0/login"
  r = requests.post(url = <value>, params = <value>, verify=False)
  data = r.json()
  token = data['access_token']
  print(token)
  headers = {'Authorization': "Bearer " + token}
  print(headers)
  look_url = "https://<hostname>.<subdomain>.<domain>.com:19999/api/4.0/looks/<value>"
  look = requests.get(look_url, headers=headers, verify=False)
  json = look.json()
  query = json['query']
  ### ADD MODEL HERE
  ### ADD FILTER
  body = {
      "model":"<value>",
      "view":query['view'],
      "fields":query['fields'],
      "filters":{<value>}
  }
  print(body)
  run_inline = "https://<hostname>.<subdomain>.<domain>.com:19999/api/4.0/queries/run/csv"
  run_query = requests.post(run_inline, headers = headers, json=body, verify=False)
  print(run_query._content)
  print(run_query.url)

Option 3: Outils de développement logiciel

Des outils tels que Postman ou Paw permettent aux utilisateurs d'interagir avec les points de terminaison de l'API ou de les exploiter via une interface utilisateur graphique (IUG). Le même processus s'applique aux outils de développement logiciel et aux requêtes HTTP. La première étape consiste à vous connecter à l'aide de votre code secret et de votre ID client. Stockez ensuite le jeton d'accès en tant que jeton de support pour autoriser les appels d'API qui suivent, comme indiqué ici dans Postman.

L'IUG de Postman, contenant une URL POST Looker, un code secret et un ID client.

Postman ou d'autres outils de développement logiciel (comme Paw) vous permettent de spécifier l'autorisation, le corps, les paramètres et les en-têtes dans leur interface utilisateur, puis de générer la requête pour vous. Ils exécuteront également le point de terminaison lorsque vous cliquerez sur send (envoyer).

Allez-y ! (Mais faites attention)

Maintenant que vous pouvez utiliser l'API de Looker via un SDK, une requête HTTP et un outil de développement logiciel, lancez-vous et testez différentes choses ! Toutefois, sachez que même si l'utilisation de l'API peut aider à automatiser des processus tels que la création ou la réattribution d'une planification après qu'un utilisateur a quitté votre entreprise, une utilisation inappropriée de l'API peut endommager une instance.

Quelques points généraux à retenir:

  • Soyez prudent lorsque vous modifiez des autorisations ou supprimez des utilisateurs, en particulier de manière groupée. Il est possible de supprimer ou de bloquer de nombreux utilisateurs, y compris les administrateurs. Ce type d'action ne peut pas être facilement annulé.
  • Les appels d'API augmentent l'utilisation des instances. Par conséquent, essayez de programmer des heures de fermeture pour obtenir des performances optimales.
  • Le nombre de fichiers ouverts est limité sur chaque serveur d'instances. Il est donc possible de faire planter une instance en cas d'utilisation irresponsable de l'API.
  • Testez les workflows et les fonctions à petite échelle avant de les ajouter en production.
  • Ne partagez jamais vos identifiants d'API et ne les laissez jamais dans un fichier auquel d'autres utilisateurs peuvent accéder.

Si vous avez une question ou si vous souhaitez partager une idée intéressante, consultez la communauté Looker. N'hésitez pas à nous faire savoir si nous pouvons améliorer ce point ou si vous souhaitez ajouter d'autres exemples à notre documentation.