Looker API 3.x 지원 중단

API 3.x는 2023년 8월에 사용 중지됩니다

이전에 Google에서는 이 변경사항이 2023년 7월에 출시될 예정이라고 설명했습니다. 고객 의견에 따라 이 전환을 더 원활하게 수행할 수 있도록 2023년 8월로 연기했습니다. 자세한 내용을 보려면 이 대화상자를 닫습니다.

Looker 22.4의 API 4.0 정식 버전 출시에 따라 이미 지원 중단된 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 엔드포인트를 다음 목록과 같이 이와 동일하거나 개선된 엔드포인트로 대체하고 있습니다.

'스페이스' 엔드포인트 이름이 변경되었습니다. 동의어 '폴더' 엔드포인트를 대신 사용합니다.

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 탐색기는 이 문서 페이지에 나열된 가이드라인 외에도 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를 시작하기 전에 다음 셸 명령어를 실행하여 'API 3.x 거부' 전환이 표시되도록 만드는 환경 변수를 추가할 수 있습니다(참고: 명령어를 실행한 후에도 Looker UI의 기존 기능 패널에서 스위치를 전환하여 API 3 호출을 중지해야 합니다.).

export FF_DENY_API3=true

FAQ

인스턴스에서 API 3.x 호출이 수행되는지 확실하지 않습니다. 이 정보는 어떻게 찾을 수 있습니까?

Looker 23.8부터 관리자 > 쿼리 패널의 소스 열에 Looker API에서 시작된 쿼리의 API 버전(v3 또는 v4)이 올바르게 표시됩니다. 여기에는 사용자 만들기 또는 LookML 개발/Git 태스크와 같은 관리자 또는 개발자 태스크에 대한 정보는 포함되지 않습니다.

Google의 내부 보고 서비스에는 관리 및 LookML 개발 작업을 완료하는 데 사용되는 요청을 포함하여 API 요청에 대한 자세한 정보가 포함됩니다. 권장 네트워킹 구성을 따르는 인스턴스가 있는 고객은 Looker 지원팀에 문의하여 이 데이터 내보내기를 요청할 수 있습니다.

자체 인스턴스를 호스팅합니다. 2023년 8월 14일까지 업그레이드해야 합니까?

인스턴스가 자체 호스팅되는 경우 2023년 8월 출시 버전(버전 23.14) 또는 후속 출시 버전으로 업그레이드하기 전에 변경해야 합니다. Looker의 사용 환경을 최적화하기 위해 지원되는 출시 버전을 유지할 수 있도록 가능한 한 빨리 이 작업을 시작하는 것이 좋습니다.

인스턴스가 Looker에서 호스팅되지만 ESR 프로그램이 있습니다. 2023년 8월 14일까지 업그레이드해야 합니까?

인스턴스를 2023년 8월 출시 버전(버전 23.14) 또는 후속 출시 버전으로 업그레이드하기 전에 변경해야 합니다. 인스턴스가 업그레이드를 받을 때가 되었을 때 시간에 쫓기지 않도록 최대한 빨리 이 작업을 시작하는 것이 좋습니다.

문서를 읽었지만 여전히 문제가 발생하거나 해결 방법을 잘 모르겠습니다.

API 4.0으로 성공적으로 이전할 수 없는 고객은 Looker 지원에 문의해야 합니다.