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 aus dem 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.
Mit dem APIs Explorer haben Sie vielleicht den besten Workflow für das dynamische Erstellen eines Looks, das Aktualisieren der zugrunde liegenden Abfrage und das Planen für verschiedene Stakeholder in Ihrem Unternehmen gefunden. Eine häufige nächste Frage ist: Wie kann ich diese Aufrufe oder Funktionen außerhalb des API Explorer ausführen? Es gibt drei gängige Möglichkeiten, auf die API zuzugreifen:
- API-Software Development Kits (SDKs) von Looker
- 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 Ihre Looker-Instanz verwendet.
So findest du 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 Standardpfad der Looker API der Port 443 verwendet. Für Looker-Instanzen, die auf AWS gehostet und vor dem 07.07.2020 erstellt wurden, wird für den Standardpfad der Looker API der Port 19999 verwendet.
Wenn Sie Ihre eigene Instanz hosten, erkundigen Sie sich bei Ihrem Systemadministrator nach der Portnummer. Sie kann im Feld API-Host-URL im Looker-Admin-Bereich festgelegt werden. Öffnen Sie dazu in Looker das Drop-down-Menü Verwaltung und wählen Sie API aus.
Weitere Informationen zu Ports finden Sie auf der Dokumentationsseite Einstieg in die Looker API. In den folgenden Beispielen wird der API-Port 19999 verwendet. Sie sollten jedoch den von Ihrer Instanz verwendeten Port prüfen.
Option 1: Looker SDK verwenden
Looker bietet offizielle Looker API-Client-SDKs in Python, Ruby, TypeScript und JavaScript, Swift, Kotlin und R an. Quellcode und Beispiele finden Sie im sdk-examples
GitHub-Repository 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. Um ein Beispiel des Webentwicklers und Autors Kristopher Sandoval zu verwenden: „APIs sind Telefonleitungen, die die Kommunikation in und aus dem Haus ermöglichen. Das SDK ist das Haus selbst und sein gesamter Inhalt.“ In seinem Artikel 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 von APIs unterscheidet.
Die SDKs von Looker enthalten alle API-Endpunkte, die Sie benötigen könnten. Sie sind so verpackt, dass Sie nahtlos mit Looker in der Programmiersprache Ihrer Wahl interagieren können. 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
. Sie übergeben dieuser_id
, um anzugeben, welchen Nutzer Sie aktualisieren möchten. -
Verwenden Sie
models.WriteUser
, um anzugeben, 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 mit einer IDE wie Visual Studio Code verwenden und die Eingabetaste gedrückt halten (F12 in den Standardeinstellungen von Visual Studio Code) und dann Zu Definitionen auswählen, sehen Sie alle Methoden und Parameter, die von den Methoden akzeptiert oder zurückgegeben werden. Sie finden sie auch im GitHub-Repository des SDK. Suchen Sie dort nach Methoden- und Modelldateien.
Option 2: HTTP-Anfragen mit curl oder einer Requests-Bibliothek
Was ist, wenn Sie kein Script schreiben oder keine Monate oder Jahre damit verbringen möchten, eine neue Programmiersprache zu lernen? In diesem Fall können Sie curl verwenden, um HTTP-Anfragen zu senden und die Looker API zu nutzen.
Bei einer HTTP-Anfrage wird eine Nachricht an ein Ziel gesendet. Das kann ein Server, ein Smartphone oder sogar Ihr Smart-TV sein. 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 im Rahmen des API-Aufrufs übergeben. Mit einigen Methoden erhalten Sie Daten, mit anderen werden Daten an Looker gesendet, mit anderen werden Daten aktualisiert und mit anderen werden Daten aus Looker gelöscht oder entfernt.
Aktion | Methode |
Erstellen |
POST
|
Lesen |
GET
|
Aktualisieren |
PUT
|
Löschen |
DELETE
|
Fangen wir mit dem Curling an. Zendesk bietet eine gute Anleitung zum Installieren und Verwenden von cURL.
Wenn Sie HTTP-Aufrufe an die Looker API senden möchten, müssen Sie zuerst den login
-Endpunkt der Looker API mit Ihrer Client-ID und Ihrem Client Secret aufrufen. Dadurch wird ein Zugriffstoken erstellt. Dieses Zugriffstoken wird dann bei jedem Aufruf übergeben. Das Zugriffstoken stellt sicher, dass der Aufruf von einem autorisierten Nutzer stammt.
Auf dieser Seite wird durch einige Notizen angegeben, wo Sie den Text im Codebeispiel durch Ihre Informationen ersetzen sollten. Die URL einer von Looker gehosteten Instanz hat das Formathttps://<hostname>.<subdomain>.<domain>.com
. Ersetzen Sie in den Beispielen auf dieser Seite den Abschnitt<hostname>.<subdomain>.<domain>.com
durch die URL Ihrer Looker-Instanz. Außerdem verwenden wir die Schreibweise<value>
, um anzugeben, wo Sie den entsprechenden Wert eingeben sollen. Ersetzen Sie das<value>
im Codebeispiel. Ersetzen Sie beispielsweise im folgenden Code, in demclient_id=<value>&client_secret=<value>
angezeigt wird, das erste<value>
durch Ihrclient_id
und das zweite<value>
durch Ihrclient_secret
.
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, erkennt Looker Ihre API-Anmeldedaten. Das Token wird mit einem expires_in
-Wert zurückgegeben, der angibt, wie lange das Token gültig ist. Sie beträgt oft etwa 60 Minuten (3.600 Sekunden).
Nachdem Sie ein Zugriffstoken haben, können Sie beliebige Aufrufe starten. Alle Endpunkte sind in der Referenz zur Looker API 4.0 nach API-Version aufgelistet. Denken Sie daran: Die Looker-Community-Website ist eine gute Ressource, um anderen Looker-Nutzern Fragen zur Nutzung der API zu stellen, Best Practices zu erfahren oder Ihre Erfahrungen mit der API mit anderen Nutzern zu teilen.
Angenommen, Sie möchten einen neuen Nutzer erstellen. Vorgehensweise:
- Erstellen Sie eine curl-
POST
-Anfrage, über die Ihr Token übergeben wird, um Looker mitzuteilen, dass Sie autorisiert sind. - Fügen Sie einen Textkörper ein, der in diesem Fall im JSON-Format formatiert ist, um Looker mitzuteilen, welche Attribute der neue Nutzer haben soll. Für API-Aufrufe gibt es einige Pflichtfelder. Weitere Informationen finden Sie in der Referenz zur Looker API 4.0.
- Beenden Sie die Curl-Notation mit dem gewünschten Endpunkt, in diesem Fall
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 „Header“ und -d
für „Daten“. Weitere Informationen zu Curl-Befehlen finden Sie in diesem GitHub-Gist.
Sie haben gerade einen Nutzer mit dem Vor- und Nachnamen sowie der E-Mail-Adresse erstellt, die die zuvor eingegebenen Werte enthalten.
Was ist, wenn Sie diese Befehle in ein Script schreiben möchten, damit Sie sie 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.
Im folgenden Beispiel wird beispielsweise die requests
-Bibliothek verwendet, 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. Für ein Softwareentwicklungstool gilt derselbe Prozess wie für HTTP-Anfragen. Melden Sie sich zuerst mit Ihrem Clientschlüssel und Ihrer Client-ID an. Speichern Sie das Zugriffstoken dann als Inhabertoken, um die nachfolgenden API-Aufrufe zu autorisieren, wie hier in Postman gezeigt:
Mit Postman oder anderen Softwareentwicklungstools wie Paw können Sie Autorisierung, Body, Parameter und Header über die Benutzeroberfläche angeben und die Anfrage dann automatisch generieren lassen. Außerdem wird der Endpunkt ausgeführt, wenn Sie auf Senden klicken.
Viel Erfolg! (Aber Vorsicht)
Da Sie die Looker API jetzt über ein SDK, eine HTTP-Anfrage und ein Softwareentwicklungstool verwenden können, können Sie sie jetzt testen. Die API kann zwar dazu beitragen, Prozesse wie das Erstellen oder Neuzuweisen eines Zeitplans zu automatisieren, wenn ein Nutzer Ihr Unternehmen verlässt, 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 können nicht einfach rückgängig gemacht werden.
- API-Aufrufe erhöhen die Instanznutzung. Planen Sie sie daher für Zeiten außerhalb der Stoßzeiten, um eine optimale Leistung zu erzielen.
- Auf jedem Instanzserver gibt es ein Limit für offene Dateien. Daher ist es möglich, eine Instanz durch eine verantwortungslose API-Nutzung zum Absturz zu bringen.
- Testen Sie Workflows und Funktionen in kleinem Umfang, bevor Sie sie in die Produktion aufnehmen.
- 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 coole Idee teilen möchten, besuchen Sie die Looker-Community. Wenn Sie Verbesserungsvorschläge haben oder weitere Beispiele in die Dokumentation aufgenommen werden sollen, lassen Sie es uns wissen.