Looker API 3.x のサポート終了

API 3.x は 2023 年 8 月に無効になります

この変更は 2023 年 7 月のリリースに適用されることを以前にお知らせいたしましたが、お客様からのフィードバックに基づき、この移行をスムーズに行うため、この期限を 2023 年 8 月まで延ばしました。詳細については、このダイアログを閉じてください。

Looker 22.4 の API 4.0 GA リリースに続いて、すでに非推奨になった 3.0 API に加えて、3.1 API のサポート終了を発表しました。

2022 年 6 月のサポート終了通知をもって、3.1 API と 3.0 API(3.x と表現します)は非推奨になりました。3.x API バージョンは、2023 年 8 月にリリースされる Looker バージョン 23.14 以降で無効になります。

このアップグレードは、8 月 14 日から 8 月 24 日までのメンテナンス時間内に Looker でホストされるインスタンスに展開されます。 そのため、Looker でホストされるすべてのインスタンスでは、2023 年 8 月 14 日より前に、3.x API エンドポイントではなく 4.0 API エンドポイントを使用するようにアプリケーションをアップグレードする必要があります。3.x エンドポイントに依存している機能は、この変更後、使用できなくなります。

インスタンスがセルフホスト型の場合は、Looker インスタンスをバージョン 23.14 以降にアップグレードする前にアプリケーションをアップグレードする必要があります。

4.0 API は非推奨 API で提供される機能に完全に対応しており、ほとんどのユーザーにとって 3.x から 4.0 へのアップグレードは簡単です。

API 4.0 に正常に移行できない場合は、Looker サポートにお問い合わせください。

タイムライン

  • 2022 年以前: API 3.0 は非推奨ステータス、3.1 は安定ステータス、4.0 はベータ版ステータス
  • 2022 年 3 月: API 4.0 が安定ステータスになり、Looker 22.4 で一般提供
  • 2022 年 6 月: API 3.1 のサポート終了が発表されました
  • 2023 年 8 月: Looker で API 3.x が廃止予定

この記事の対象者

このドキュメントは、Looker がサポートする SDK、コミュニティがサポートする SDK、または API 自体を通じて、Looker API を利用するユーザーを対象としています。引き続き、アプリケーションに影響する可能性のある重要な変更について学習します。

必要なご対応

コードに次の変更を加えてください。詳細については、このページの後半で説明します。

  • 新しい API を指すようにコードを変更します。
  • 削除されたエンドポイントの使用状況を特定し、これらの参照を API 4.0 の同等のものに置き換えます。
  • 以前は数値で表されていた ID 値を、文字列で表すように更新します。

API 4.0 の移行の詳細

新しい API を指すようにコードを変更する

コマンドラインや Postman などのプログラムから API を直接呼び出す場合は、リクエストに使用する URL を調整する必要があります。

### 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

いずれかの SDK を使用している場合は、SDK の正しいバージョンを初期化しているか確認する必要があります。ここでは、両方のバージョンで SDK を使用する Python スクリプトの開始がどのようなものか、基本的な例を示します。

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

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

4.0 API に変更を加えたら、コードをテストして次の変更を確認します。

API 3.x エンドポイントの置き換え

Looker API と Looker UI の間で用語に一貫性を持たせるため、API 4.0 では、いくつかの非推奨の API 3.x エンドポイントを、同等のまたは改善されたエンドポイントに置き換えます。

「Space」エンドポイントの名前が変更されました。代わりに類義語の「Folder」エンドポイントを使用してください。

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 の例

    #####################
    ##### 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\"}"
    

「ホームページ」エンドポイントを削除しました。代わりに、拡張機能の「ボード」エンドポイントを使用してください。

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 の例

    #####################
    ##### 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 の ID フィールド タイプの破壊的変更

API 4.0 では、一部の ID フィールドが数値から文字列に更新されました。API リファレンス差分ツールを使用して、3.1 と 4.0 の間で変更された ID フィールドを確認します。最新(23.0 以上)の Looker でサポートされている言語 SDK を使用して、移行中および移行後のアプリケーションの型が正しいことを確認してください。Kotlin、Swift、R、C#、Go など、ほとんどのコミュニティ サポート言語 SDK は、更新された型でもすでに動作します。

カスタム ライブラリを使用しているデベロッパーは、フィールドが適切に処理されるように、これらのフィールドへの参照コードを検索する必要があります。

API 4.0 差分:

Looker API Explorer では、前述のガイドラインに加えて、3.x API と 4.0 API のすべての違いの完全なリストが提供されています。

レガシー機能の切り替えによる API 3.x の無効化および有効化

Looker 23.6、23.8、23.10、23.12 を使用する Looker ホスト型のお客様の場合、管理者は現在、API 3 エンドポイントへのすべての呼び出しを無効にできます。これにより、8 月 14 日の期限前に統合サービスやアプリケーションが中断されないことをインスタンスでテストできるようになります。そのためには、[レガシー機能の管理パネル] で [API 3.x のリクエストを拒否する] をオンに切り換えることができます。

Looker 23.6、23.8、23.10、23.12 を使用するセルフホスト型のお客様は、Looker を起動する前に次のシェルコマンドを実行して、「Deny API 3.x リクエスト」の切り替えを表示する環境変数を追加できます。注: このコマンドを実行しても、Looker UI の [レガシー機能] パネルで切り替えて、API 3 の呼び出しを停止する必要があります)。

export FF_DENY_API3=true

よくある質問

インスタンスで API 3.x 呼び出しが行われているかどうかがわかりません。この情報はどこで確認できますか?

Looker 23.8 の時点で、[Admin] > [Queries] パネルの [Source] 列に、Looker API から開始されたクエリの API バージョン(v3 または v4)が正しく表示されるようになりました。これには、ユーザーの作成、LookML の開発/Git タスクなど、管理者タスクやデベロッパー タスクに関する情報は含まれません。

内部レポート サービスには、管理タスクや LookML Development タスクの完了に使用されるものなど、API リクエストに関する詳細情報があります。推奨されるネットワーク構成に従ってインスタンスをお持ちのお客様は、Looker サポートに連絡してこのデータのエクスポートをリクエストできます。

独自のインスタンスのホスティングを希望します。2023 年 8 月 14 日までにアップグレードする必要がありますか?

インスタンスが自己ホスト型の場合は、2023 年 8 月のリリース(バージョン 23.14)またはそれ以降のリリースにアップグレードする前に、変更を加える必要があります。Looker を最大限に活用するため、サポート対象のリリースを維持できるように、できるだけ早く作業を開始することをおすすめします。

インスタンスは Looker ホスト型ですが、ESR プログラムにあります。2023 年 8 月 14 日までにアップグレードする必要がありますか?

インスタンスが 2023 年 8 月のリリース(バージョン 23.14)以降のリリースにアップグレードされる前に、変更する必要があります。予定されているアップグレードが実行される時に時間的に追い詰められないように、できるだけ早く作業を開始することをおすすめします。

ドキュメントを読んだが、問題がまだ解決していない、または続行する方法がわからない。

API 4.0 に正常に移行できない場合は、Looker サポートにお問い合わせください。