Mit dem API Explorer von Looker können Nutzer API-Aufrufe fast sofort testen, ohne eine einzige Codezeile schreiben zu müssen. Wenn Sie die API Explorer-Erweiterung über den Looker Marketplace installiert haben, können Sie im Looker-Menü Anwendungen auf API Explorer klicken, um den API Explorer zu öffnen und die aktuelle API-Dokumentation aufzurufen. Wenn Sie die API Explorer-Erweiterung noch nicht installiert haben, können Sie sie im Looker Marketplace im Bereich Anwendungen installieren.
Vielleicht haben Sie mithilfe des API Explorers den besten Workflow für das dynamische Erstellen eines Looks, das Aktualisieren der zugrunde liegenden Abfrage und das Planen des Versands an verschiedene Stakeholder in Ihrem Unternehmen herausgefunden. Eine häufige Frage ist, wie diese Aufrufe oder Funktionen außerhalb des API Explorers ausgeführt werden können. Es gibt drei gängige Möglichkeiten, auf die API zuzugreifen:
- Looker API-Software Development Kits (SDKs)
- HTTP-Anfragen
- Softwareentwicklungstools
Auf dieser Seite wird beschrieben, wie Sie diese Methoden verwenden.
Bevor Sie beginnen: Authentifizierung und Ports
Unabhängig davon, wie Sie auf die Looker API zugreifen, benötigen Sie zuerst zwei Informationen: Ihre persönliche API-Authentifizierung (in Form einer Client-ID und eines Clientschlüssels) und die Portnummer, die von Ihrer Looker-Instanz verwendet wird.
So finden Sie eine Client-ID und einen Clientschlüssel:
- Wenn Sie Looker-Administrator sind, rufen Sie in der Looker-Benutzeroberfläche die Seite Nutzer für den gewünschten Nutzer auf und klicken Sie auf Schlüssel bearbeiten.
- Wenn Sie kein Looker-Administrator sind, haben Sie Ihre Client-ID und Ihren Clientschlüssel von Ihrem Looker-Administrator erhalten.
Für Looker-Instanzen, die in Google Cloud oder Microsoft Azure gehostet werden, und für Instanzen, die in Amazon Web Service (AWS) gehostet werden und am oder nach dem 07.07.2020 erstellt wurden, wird für den standardmäßigen Looker API-Pfad Port 443 verwendet. Bei Looker-Instanzen, die auf AWS gehostet werden und vor dem 07.07.2020 erstellt wurden, wird für den Standard-Looker API-Pfad Port 19999 verwendet.
Wenn Sie Ihre eigene Instanz hosten, fragen Sie Ihren Systemadministrator nach der Portnummer. Sie kann im Feld API Host URL in der Looker-Admin-Konsole festgelegt werden. Sie können dies in Looker im Drop-down-Menü Admin sehen, wenn Sie API auswählen.
Weitere Informationen zu Ports finden Sie auf der Dokumentationsseite Erste Schritte mit der Looker API. In den folgenden Beispielen wird der API-Port 19999 verwendet. Sie sollten jedoch den Port bestätigen, der von Ihrer Instanz verwendet wird.
Option 1: Looker Software Development Kit (SDK) verwenden
Looker bietet offizielle Looker API-Client-SDKs in Python, Ruby, Typescript und JavaScript, Swift, Kotlin und R. Quellcode und Beispiele finden Sie im GitHub-Repository sdk-examples
von Looker.
Ein SDK bietet Tools oder Bibliotheken, mit denen Entwickler mit einer bestimmten Plattform oder Anwendung interagieren können. In diesem Fall enthalten die SDKs von Looker in der Regel APIs. Kristopher Sandoval, Webentwickler und Autor, vergleicht APIs mit Telefonleitungen, die die Kommunikation in und aus dem Haus ermöglichen. Das SDK ist das Haus selbst und alle seine Inhalte.“ In einem hervorragenden Artikel mit dem Titel What Is the Difference Between an API and an SDK? (Was ist der Unterschied zwischen einer API und einem SDK?) erklärt er, was ein SDK ist und wie es sich auf APIs bezieht.
Die SDKs von Looker enthalten alle API-Endpunkte, die Sie verwenden möchten oder müssen. Sie sind so verpackt, dass Sie nahtlos mit Looker interagieren können, indem Sie die Programmiersprache Ihrer Wahl verwenden. Mit den Funktionen können Sie die folgenden Aufgaben ausführen:
- Daten an Looker senden
- Daten aus Looker abrufen
- Daten in Looker aktualisieren
- Daten in Looker löschen
Hier ist ein Beispiel dafür, wie Sie einen Nutzer mit dem Python SDK aktualisieren können:
-
Initialisieren Sie die Sitzung mit
looker_sdk.init
. -
Aktualisieren Sie den Nutzer mit
sdk.update_user
. Mituser_id
geben Sie an, welchen Nutzer Sie aktualisieren möchten. -
Mit
models.WriteUser
können Sie angeben, wie der Nutzer aktualisiert werden soll.
#### 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)
Wenn Sie eines unserer SDKs verwenden und in einer IDE wie Visual Studio Code mit der Befehlstaste klicken (F12 in den Standardeinstellungen von Visual Studio Code) und dann Zu Definitionen wechseln auswählen, können Sie alle Methoden und alle Parameter sehen, die von den Methoden akzeptiert oder zurückgegeben werden. Sie können sie auch im GitHub-Repository des SDK ansehen. Suchen Sie dort nach Methoden und Modelldateien.
Option 2: HTTP-Anfragen mit curl oder einer „requests“-Bibliothek
Was ist, wenn Sie kein Skript schreiben oder monate- oder jahrelang eine neue Programmiersprache lernen möchten? In diesem Fall können Sie curl verwenden, um HTTP-Anfragen zu stellen und die Looker API zu nutzen.
Bei einer HTTP-Anfrage wird eine Nachricht an ein Ziel gesendet, das ein Server, ein Smartphone oder sogar ein Smart-TV sein kann. Es gibt verschiedene Arten von HTTP-Anfragen. Wie Sie diese Anfragen mit der Looker API verwenden, hängt von der Art der Methode ab, die Sie als Teil des API-Aufrufs übergeben. Bei einigen Methoden erhalten Sie Daten, bei anderen werden Daten an Looker gesendet, aktualisiert oder gelöscht.
Aktion | Methode |
Erstellen |
POST
|
Lesen |
GET
|
Aktualisieren |
PUT
|
Löschen |
DELETE
|
Fangen wir mit dem Locken an. Zendesk bietet eine gute Anleitung zum Thema cURL installieren und verwenden.
Bevor Sie HTTP-Aufrufe an die Looker API senden können, müssen Sie zuerst den login
-Endpunkt der Looker API mit Ihrer Client-ID und Ihrem Clientschlüssel aufrufen. Dadurch wird ein Zugriffstoken erstellt. Dieses Zugriffstoken wird dann bei jedem Aufruf übergeben. Das Zugriffstoken sorgt dafür, dass der Aufruf von einem autorisierten Nutzer stammt.
Auf dieser Seite wird an einigen Stellen darauf hingewiesen, dass Sie den Text im Codebeispiel durch Ihre Informationen ersetzen müssen. Looker-Instanz-URLs haben das Formathttps://<hostname>.<subdomain>.<domain>.com
. Wenn Sie diese Notation in den Beispielen auf dieser Seite sehen, ersetzen Sie den Abschnitt<hostname>.<subdomain>.<domain>.com
durch die URL Ihrer Looker-Instanz. Außerdem verwenden wir die Notation<value>
, um anzugeben, wo Sie den entsprechenden Wert eingeben müssen. Ersetzen Sie dazu das<value>
im Codebeispiel. Ersetzen Sie im folgenden Code beispielsweise die erste<value>
durch Ihreclient_id
und die zweite<value>
durch Ihreclient_secret
.client_id=<value>&client_secret=<value>
Hier ist der curl-Befehl zum Abrufen des Zugriffstokens:
curl -d "client_id=<value>&client_secret=<value>" https://<hostname>.<subdomain>.<domain>.com:19999/login
Hier ist die Antwort:
{"access_token":"ABCDEFGHIJLMNOP1234","token_type":"Bearer","expires_in":3600}
Wenn Sie das Token erhalten, bedeutet das, dass Looker Ihre API-Anmeldedaten erkennt. Das Token wird mit einem expires_in
-Wert zurückgegeben, der angibt, wie lange das Token gültig ist. Das sind oft etwa 60 Minuten (3.600 Sekunden).
Nachdem Sie ein Zugriffstoken haben, können Sie Anrufe starten. Alle Endpunkte sind in der Dokumentation zur Looker API 4.0 nach API-Version aufgeführt. Die Community-Website von Looker ist eine hervorragende Ressource, um andere Looker-Nutzer zu fragen, wie sie die API nutzen, um Best Practices zu lernen oder um Ihre Erfolge mit der API mit anderen Nutzern zu teilen.
Angenommen, Sie möchten einen neuen Nutzer erstellen. Vorgehensweise:
- Schreiben Sie eine curl-
POST
-Anfrage, die Ihr Token übergibt, um Looker mitzuteilen, dass Sie autorisiert sind. - Fügen Sie einen Textkörper ein, der in diesem Fall als JSON formatiert ist, um Looker mitzuteilen, welche Attribute der neue Nutzer haben soll. Für API-Aufrufe sind einige Felder erforderlich. Weitere Informationen finden Sie in der Referenz zur Looker API 4.0.
- Beenden Sie die curl-Notation mit dem Endpunkt, den Sie verwenden möchten. In diesem Fall ist das
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
steht für den Header und -d
für die Daten. Weitere Informationen zu curl-Befehlen finden Sie in diesem GitHub-Gist.
Sie haben gerade einen Nutzer mit dem Vornamen, Nachnamen und der E-Mail-Adresse erstellt, die die von Ihnen zuvor eingegebenen Werte enthält.
Was ist, wenn Sie das in einem Skript schreiben möchten, damit Sie diese Befehle nicht jedes Mal eingeben müssen, wenn Sie diesen Workflow ausführen möchten? Sie können eine Programmiersprache und Bibliothek wie die requests
-Bibliothek von Python verwenden.
Hier ist beispielsweise ein Skript, in dem die requests
-Bibliothek verwendet wird, um einen Look anhand der Look-ID (<value>
im looks
-Aufruf) abzurufen, einen neuen Filter anzuwenden und die Ergebnisse dann als CSV-Datei herunterzuladen:
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: Softwareentwicklungstools
Mit Tools wie Postman oder Paw können Nutzer über eine grafische Benutzeroberfläche (GUI) mit API-Endpunkten interagieren oder diese nutzen. Dasselbe Verfahren gilt für ein Softwareentwicklungstool wie für HTTP-Anfragen. Im ersten Schritt müssen Sie sich mit Ihrem Clientschlüssel und Ihrer Client-ID anmelden. Speichern Sie das Zugriffstoken dann als Inhabertoken, um die folgenden API-Aufrufe zu autorisieren, wie hier in Postman gezeigt.
Mit Postman oder anderen Softwareentwicklungstools wie Paw können Sie die Autorisierung, den Text, die Parameter und die Header in der Benutzeroberfläche angeben und dann die Anfrage generieren lassen. Der Endpunkt wird auch ausgeführt, wenn Sie auf Senden klicken.
Geht voran! (Aber Vorsicht)
Da Sie die Looker API jetzt über ein SDK, eine HTTP-Anfrage und ein Softwareentwicklungstool verwenden können, sollten Sie sie gleich ausprobieren. Die Verwendung der API kann zwar dazu beitragen, Prozesse wie das Erstellen oder Zuweisen eines Zeitplans nach dem Ausscheiden eines Nutzers aus Ihrem Unternehmen zu automatisieren. Eine unsachgemäße API-Nutzung kann jedoch zu Schäden an einer Instanz führen.
Allgemeine Hinweise:
- Seien Sie vorsichtig, wenn Sie Berechtigungen bearbeiten oder Nutzer löschen, insbesondere im Bulk-Verfahren. Es ist möglich, viele Nutzer, einschließlich Administratoren, zu löschen oder zu sperren. Solche Aktionen lassen sich nicht ohne Weiteres rückgängig machen.
- API-Aufrufe erhöhen die Instanznutzung. Planen Sie sie daher für Zeiten außerhalb der Geschäftszeiten, um eine optimale Leistung zu erzielen.
- Für jeden Instanzserver gilt ein Limit für offene Dateien. Es ist also möglich, eine Instanz durch unsachgemäße API-Nutzung zum Absturz zu bringen.
- Testen Sie Workflows und Funktionen in kleinem Umfang, bevor Sie sie in der Produktion hinzufügen.
- Geben Sie Ihre API-Anmeldedaten niemals weiter und lassen Sie sie nicht in einer Datei, auf die andere Nutzer zugreifen können.
Wenn Sie eine Frage haben oder eine tolle Idee teilen möchten, besuchen Sie die Looker-Community. Wenn Sie Vorschläge zur Verbesserung haben oder weitere Beispiele in unserer Dokumentation wünschen, können Sie sich gern an uns wenden.