Einstellung der Looker API 3.x

API 3.x wird im August 2023 deaktiviert

Ursprünglich hatten wir angekündigt, dass diese Änderung mit der Version vom Juli 2023 eingeführt wird. Aufgrund des Feedbacks unserer Kunden haben wir diese Frist auf August 2023 verschoben, um die Umstellung zu erleichtern. Schließen Sie dieses Dialogfeld, um weitere Informationen zu erhalten.

Nach der GA-Version von API 4.0 in Looker 22.4 haben wir angekündigt, dass neben der bereits eingestellten 3.0 API auch die API 3.1 eingestellt wird.

Seit unserer Ankündigung der Einstellung im Juni 2022 sind sowohl die 3.1 API als auch die 3.0 API, auch als 3.x bezeichnet, eingestellt. Die 3.x API-Versionen werden ab der Veröffentlichung von Looker-Version 23.14 im August 2023 deaktiviert.

Dieses Upgrade wird in Looker-gehosteten Instanzen während der Wartungszeiten zwischen dem 14. und dem 24. August eingeführt. Daher müssen alle von Looker gehosteten Instanzen vor dem 14. August 2023 ihre Anwendungen so aktualisieren, dass sie 4.0-API-Endpunkte anstelle von 3.x-API-Endpunkten verwenden. Alle Funktionen, die auf 3.x-Endpunkten basieren, funktionieren nach dieser Änderung nicht mehr.

Wenn Ihre Instanz selbst gehostet wird, müssen Sie Ihre Anwendungen aktualisieren, bevor Sie Ihre Looker-Instanz auf Version 23.14 oder höher aktualisieren.

Die API 4.0 deckt alle Funktionen der eingestellten APIs ab. Wir gehen davon aus, dass die Umstellung von 3.x auf 4.0 für die meisten Kunden problemlos verläuft.

Kunden, die die Migration zu API 4.0 nicht erfolgreich durchführen können, wenden sich bitte an den Looker-Support.

Zeitachse

  • Vor 2022: API 3.0 wurde eingestellt, 3.1 ist stabil und 4.0 befindet sich in der Betaphase
  • März 2022: API 4.0 erhält den Status „stabil“ und ist allgemein in Looker 22.4 verfügbar.
  • Juni 2022: Einstellung von API 3.1 wird angekündigt
  • August 2023: API 3.x wird in Looker deaktiviert

Wer sollte dies lesen?

Dieses Dokument richtet sich an Nutzer, die die Looker API über von Looker unterstützte SDKs, von der Community unterstützte SDKs oder die API selbst verwenden. Lesen Sie weiter, um mehr über funktionsgefährdende Änderungen zu erfahren, die sich auf Ihre Anwendung auswirken können, und lernen Sie

Was muss ich tun?

Sie müssen die folgenden Änderungen an Ihrem Code vornehmen. Diese werden weiter unten auf dieser Seite genauer beschrieben.

  • Ändern Sie Ihren Code so, dass er auf die neue API verweist.
  • Ermitteln Sie die Verwendung entfernter Endpunkte und ersetzen Sie diese Verweise durch die API 4.0-Entsprechung.
  • Aktualisieren Sie ID-Werte, die zuvor als Zahlen ausgedrückt wurden, in Strings.

Details zur API 4.0-Migration

Code ändern, sodass er auf die neue API verweist

Wenn Sie API-Aufrufe direkt über die Befehlszeile oder Programme wie Postman ausführen, müssen Sie die URL anpassen, die Sie für die Anfrage verwenden.

### API 3.1 ###
GET https://myinstance.looker.com/api/3.1/users/5877

### API 4.0 ###
GET https://myinstance.looker.com/api/4.0/users/5877

Wenn Sie eines unserer SDKs verwenden, müssen Sie darauf achten, dass Sie die richtige Version des SDKs initialisieren. Hier ein einfaches Beispiel für den Anfang eines Python-Scripts mit unserem SDK in beiden Versionen:

### API 3.1 ###
import looker_sdk
sdk = looker_sdk.init31()

### API 4.0 ###
import looker_sdk
sdk = looker_sdk.init40()

Nachdem Sie die Änderung an der API 4.0 vorgenommen haben, ist es an der Zeit, Ihren Code zu testen und die folgenden Änderungen zu überprüfen.

API 3.x-Endpunktersetzungen

Um die Terminologie zwischen der Looker API und der Looker-Benutzeroberfläche einheitlich zu halten, werden in der API 4.0 einige eingestellte API 3.x-Endpunkte durch gleichwertige oder verbesserte Endpunkte ersetzt. Diese sind unten aufgeführt:

„Weltraum“ Endpunkte wurden umbenannt. Verwenden Sie stattdessen die synonymen Endpunkte „Ordner“.

Beispiel für ein Python SDK

    #####################
    ##### API 3 #########
    #####################

    # Create Folder in Shared Folders
    response = sdk.create_space(
      body=mdls.CreateSpace(
        name="My New Folder",
        parent_id="1"
      )
    )

    # Get Folder info by ID
    response = sdk.space(space_id="555")

    # Change name of existing Folder
    response = sdk.update_space(
      space_id="555",
      body=mdls.UpdateSpace(
        name="My Updated Folder"
      )
    )

    #####################
    ##### API 4 #########
    #####################

    # Create Folder in Shared Folders
    response = sdk.create_folder(
      body=mdls.CreateFolder(
        name="My New Folder",
        parent_id="1"
      )
    )

    # Get Folder info by ID
    response = sdk.folder(folder_id="555")

    # Change name of existing Folder
    response = sdk.update_folder(
      space_id="555",
      body=mdls.UpdateFolder(
        name="My Updated Folder"
      )
    )
    

cURL-Beispiel

    #####################
    ##### API 3 #########
    #####################

    # Get Folder info by ID
    curl -H "Authorization: token Tg7gjGZD7B8c3k7g6XtmbcyYrQgMrXpjkR25dQ2G" https://myinstance.looker.com/api/3.1/spaces/555

    # Change name of existing Folder
    curl -X PATCH https://myinstance.looker.com/api/3.1/spaces/555 -H "Authorization: token Tg7gjGZD7B8c3k7g6XtmbcyYrQgMrXpjkR25dQ2G" -H "Content-Type: application/json" -d "{\"name\": \"My Updated Space\"}"

    #####################
    ##### API 4 #########
    #####################

    # Get Folder info by ID
    curl -H "Authorization: token Tg7gjGZD7B8c3k7g6XtmbcyYrQgMrXpjkR25dQ2G" https://myinstance.looker.com/api/4.0/folders/555

    # Change name of existing Folder
    curl -X PATCH https://myinstance.looker.com/api/4.0/folders/555 -H "Authorization: token Tg7gjGZD7B8c3k7g6XtmbcyYrQgMrXpjkR25dQ2G" -H "Content-Type: application/json" -d "{\"name\": \"My Updated Space\"}"
    

Die Endpunkte „Startseite“ wurden entfernt. Board mit erweiterten Funktionen verwenden Endpunkten.

Beispiel für das Python SDK

    #####################
    ##### API 3 #########
    #####################

    # Get Board info by ID
    response = sdk.homepage(homepage_id=1348)

    # Update displayed title of Board item
    response = sdk.update_homepage_item(
      homepage_item_id=86,
      body=mdls.WriteHomepageItem(
        custom_title="Volume 3"
      )
    )

    #####################
    ##### API 4 #########
    #####################

    # Get Board info by ID
    response = sdk.board(board_id=1348)

    # Update displayed title of Board item
    response = sdk.update_board_item(
      board_item_id=86,
      body=mdls.WriteBoardItem(
        custom_title="Volume 3"
      )
    )
    

cURL-Beispiel

    #####################
    ##### API 3 #########
    #####################

    # Get Board info by ID
    curl -H "Authorization: token Tg7gjGZD7B8c3k7g6XtmbcyYrQgMrXpjkR25dQ2G" https://myinstance.looker.com/api/3.1/homepages/1348

    # Update displayed title of Board item
    curl -X PATCH https://myinstance.looker.com/api/3.1/homepage_items/86 -H "Authorization: token Tg7gjGZD7B8c3k7g6XtmbcyYrQgMrXpjkR25dQ2G" -H "Content-Type: application/json" -d "{\"custom_title\": \"Volume 3\"}"

    #####################
    ##### API 4 #########
    #####################

    # Get Board info by ID
    curl -H "Authorization: token Tg7gjGZD7B8c3k7g6XtmbcyYrQgMrXpjkR25dQ2G" https://myinstance.looker.com/api/4.0/boards/1348

    # Update displayed title of Board item
    curl -X PATCH https://myinstance.looker.com/api/4.0/boards/86 -H "Authorization: token Tg7gjGZD7B8c3k7g6XtmbcyYrQgMrXpjkR25dQ2G" -H "Content-Type: application/json" -d "{\"custom_title\": \"Volume 3\"}"
    

API 4.0 – Fehlerhafte ID-Feldtypen

In API 4.0 wurden die Typen für einige ID-Felder von Zahlen zu Strings aktualisiert. Mit unserem API-Referenz-Diff-Tool können Sie ermitteln, welche ID-Felder sich zwischen Version 3.1 und Version 4.0 geändert haben. Verwenden Sie aktuelle von Looker unterstützte Sprach-SDKs (ab 23.0), damit der Typ Ihrer Anwendungen während und nach der Migration korrekt ist. Die meisten von der Community unterstützten Sprach-SDKs, darunter Kotlin, Swift, R, C# und Go, funktionieren bereits mit den aktualisierten Typen.

Entwickler, die benutzerdefinierte Bibliotheken verwenden, sollten in ihrem Code nach Verweisen auf diese Felder suchen, um sicherzustellen, dass sie korrekt verarbeitet werden.

API 4.0-Differenze

Zusätzlich zu den auf dieser Dokumentationsseite aufgeführten Richtlinien enthält der Looker API Explorer eine vollständige Liste aller Unterschiede zwischen den APIs der Version 3.x und der API der Version 4.0.

API 3.x über die Legacy-Funktionsschaltfläche deaktivieren/aktivieren

Für von Looker gehostete Kunden, die Looker 23.6, 23.8, 23.10 und 23.12 verwenden, können Administratoren derzeit alle Aufrufe an API 3-Endpunkte deaktivieren. So können Sie vor dem 14. August Ihre Instanz testen, um sicherzustellen, dass keine integrierten Dienste oder Anwendungen unterbrochen werden. Aktivieren Sie dazu „API 3.x-Anfragen ablehnen“. im Admin-Steuerfeld „Alte Funktionen“ aus.

Selbst gehostete Kunden, die Looker 23.6, 23.8, 23.10 und 23.12 verwenden, können den folgenden Shell-Befehl ausführen, bevor sie Looker starten, um eine Umgebungsvariable hinzuzufügen, die die Ablehnung von API 3.x-Anfragen auslöst. Ein/Aus-Schaltfläche ist sichtbar (Hinweis: Nachdem Sie den Befehl ausgeführt haben, müssen Sie die Ein/Aus-Schaltfläche im Bereich „Legacy Features“ (Legacy-Funktionen) in der Looker-Benutzeroberfläche noch ändern, um API 3-Aufrufe zu beenden.):

export FF_DENY_API3=true

FAQ

Ich bin mir nicht sicher, ob für meine Instanz API 3.x-Aufrufe ausgeführt werden. Wo finde ich diese Informationen?

Ab Looker 23.8 wird in der Spalte „Quelle“ im Bereich „Verwaltung“ > Im Abfragebereich wird jetzt die API-Version (v3 oder v4) für Abfragen, die über die Looker API initiiert werden, korrekt angezeigt. Dazu gehören keine Informationen zu Administrator- oder Entwickleraufgaben wie dem Erstellen von Nutzern oder LookML-Entwicklungs-/Git-Aufgaben.

In unserem internen Berichtsservice finden Sie ausführlichere Informationen zu API-Anfragen, einschließlich derjenigen, die für die Ausführung von Aufgaben zur Verwaltung und LookML-Entwicklung verwendet werden. Kunden mit Instanzen, die der empfohlenen Netzwerkkonfiguration entsprechen, können sich an den Looker-Support wenden, um einen Export dieser Daten anzufordern.

Ich hoste meine eigene Instanz. Muss ich bis zum 14. August 2023 umstellen?

Wenn Ihre Instanz selbst gehostet wird, müssen Sie die Änderungen vornehmen, bevor Sie auf den Release vom August 2023 (Version 23.14) oder einen nachfolgenden Release aktualisieren. Wir empfehlen, mit dieser Arbeit so bald wie möglich zu beginnen, damit Sie bei einer unterstützten Version bleiben und Looker optimal nutzen können.

Meine Instanz wird von Looker gehostet, nimmt aber im ESR-Programm teil. Muss ich bis zum 14. August 2023 umstellen?

Sie müssen die Änderungen vornehmen, bevor Ihre Instanz auf den Release von August 2023 (Version 23.14) oder einen nachfolgenden Release aktualisiert wird. Wir empfehlen, so bald wie möglich mit diesen Arbeiten zu beginnen, damit Sie nicht in Zeitnot geraten, wenn das Upgrade für Ihre Instanz geplant ist.

Ich habe mir die Dokumentation durchgelesen, aber es treten weiterhin Probleme auf oder ich bin mir nicht sicher, wie ich vorgehen soll.

Kunden, die nicht zu API 4.0 migrieren können, sollten sich an den Looker-Support wenden.