Baja de la API de Looker 3.x

Se inhabilitará la API 3.x en agosto de 2023

Anteriormente, habíamos comunicado que este cambio se realizaría en la versión de julio de 2023. En función de los comentarios de los clientes, retrajimos esta fecha límite a agosto de 2023 para que la transición sea más sencilla. Cierra este diálogo para obtener más detalles.

Después de nuestra versión de DG de la API 4.0 en Looker 22.4, anunciamos la baja de nuestra API 3.1, además de nuestra API 3.0, que ya estaba obsoleta.

En nuestro anuncio de baja en junio de 2022, tanto la API 3.1 como la API 3.0, denominada 3.x, quedaron obsoletas. Las versiones de la API 3.x se inhabilitarán a partir del lanzamiento de la versión 23.14 de Looker en agosto de 2023.

Esta actualización se lanzará en las instancias alojadas en Looker durante el horario de mantenimiento, entre el 14 y el 24 de agosto. Como resultado, todas las instancias alojadas en Looker deben actualizar sus aplicaciones para usar extremos de API 4.0 en lugar de extremos de API 3.x antes del 14 de agosto de 2023. Todas las funcionalidades que dependen de extremos 3.x dejarán de funcionar después de este cambio.

Si tu instancia es autoalojada, debes actualizar tus aplicaciones antes de actualizar tu instancia de Looker a la versión 23.14 o posterior.

La API 4.0 cubre completamente la funcionalidad que ofrecen las APIs obsoletas, y esperamos que la actualización de la versión 3.x a la 4.0 sea sencilla para la mayoría de los clientes.

Los clientes que no puedan migrar correctamente a la API 4.0 deben comunicarse con la Asistencia de Looker.

Cronograma

  • Antes del 2022: La API 3.0 está en estado obsoleto, 3.1 está en estado estable y 4.0 está en estado beta.
  • Marzo de 2022: La API 4.0 entra en estado estable y está disponible de forma general en Looker 22.4
  • Junio de 2022: Se anuncia la baja de la API 3.1.
  • Agosto de 2023: Se desactivará la API 3.x en Looker

¿Quién debería leer esto?

Este documento es para ti si usas la API de Looker mediante los SDKs compatibles con Looker, los SDKs compatibles con la comunidad o la propia API. Continúa leyendo para obtener información sobre los cambios rotundos que podrían afectar tu aplicación y obtener más información

¿Qué debo hacer?

Deberás realizar los siguientes cambios en tu código. que se describen con más detalle a continuación. - Cambiar tu código para que apunte a la nueva API - Identificar el uso de extremos quitados y reemplazar esas referencias con el equivalente de API 4.0 - Actualizar los valores de ID que anteriormente se expresaron como números para que se expresen como cadenas

Detalles de migración de la API 4.0

Cambia tu código para que apunte a la nueva API

Cuando realices llamadas a la API directamente a través de la línea de comandos o programas como Postman, deberás ajustar la URL que usas para realizar la solicitud.

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

Si usas uno de nuestros SDKs, deberás asegurarte de inicializar la versión correcta del SDK. Este es un ejemplo básico de cómo podría verse el comienzo de una secuencia de comandos de Python con nuestro SDK en ambas versiones:

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

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

Una vez que realices el cambio en la API 4.0, deberás probar el código y prestar atención a los cambios que se mencionan a continuación.

Reemplazos de extremos de la API 3.x

Para mantener la coherencia de la terminología entre la API de Looker y la IU de Looker, la API 4.0 reemplaza algunos extremos de la API 3.x obsoletos por extremos equivalentes o mejorados que se enumeran a continuación:

Los extremos del "Espacio" han cambiado de nombre. En su lugar, usa extremos de “Carpeta” similares.

Ejemplo del SDK de Python

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

Ejemplo de 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\"}"
    

Se quitaron los extremos de la “Página principal”. En su lugar, usa extremos de “tablero” con funcionalidad expandida.

Ejemplo del SDK de Python

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

Ejemplo de 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 de tipos de campo de ID de interrupción

La API 4.0 tiene tipos actualizados para algunos campos de ID, desde números hasta cadenas. Usa nuestra herramienta de diferencias de referencia de la API para determinar qué campos de ID cambiaron entre 3.1 y 4.0. Usa SDKs de lenguaje compatibles con Looker actualizados (23.0 y posteriores) para asegurarte de que tus aplicaciones sean del tipo correcto durante la migración y después de ella. La mayoría de los SDKs de lenguajes admitidos por la comunidad, incluidos Kotlin, Swift, R, C# y Go, ya funcionan con los tipos actualizados.

Los desarrolladores que usan bibliotecas personalizadas deben buscar en su código referencias a estos campos para asegurarse de que se manejen de forma adecuada.

Diferencia de API 4.0

Además de los lineamientos que se enumeran en esta página de documentación, el Explorador de APIs de Looker proporciona una lista completa de todas las diferencias entre las APIs de 3.x y la de 4.0.

Inhabilitación o habilitación de la API 3.x mediante el botón de activación de la función heredada

Para los clientes alojados en Looker que usan Looker 23.6, 23.8, 23.10 y 23.12, los administradores actualmente tienen la capacidad de inhabilitar todas las llamadas a los extremos de la API 3. Esto te permitirá probar en tu instancia para asegurarte de que no haya aplicaciones ni servicios integrados antes de la fecha límite del 14 de agosto. Para ello, puedes activar “Rechazar solicitudes a la API 3.x” en el panel Administrador de funciones heredadas.

Los clientes autoalojados que usan Looker 23.6, 23.8, 23.10 y 23.12 pueden ejecutar el siguiente comando de shell antes de iniciar Looker para agregar una variable de entorno que haga visible el botón de activación “Denegar solicitudes a la API 3.x” (Nota: Después de ejecutar el comando, deberás cambiarlo en el panel Funciones heredadas en la IU de Looker para detener las llamadas a la API 3):

export FF_DENY_API3=true

Preguntas frecuentes

No sé si se están realizando llamadas a la API 3.x en mi instancia. ¿Cómo puedo encontrar esta información?

A partir de Looker 23.8, la columna Fuente del panel Administrador > Consultas ahora muestra correctamente la versión de la API (v3 o v4) para las consultas que se inician desde la API de Looker. Esto no incluirá información sobre las tareas de los administradores o desarrolladores, como la creación de usuarios o las tareas de Git o de desarrollo de LookML.

Nuestro servicio de informes interno tiene información más detallada sobre las solicitudes a la API, incluidas las que se usan para completar las tareas de desarrollo de administradores y LookML. Los clientes con instancias que sigan la configuración de red recomendada pueden comunicarse con el equipo de asistencia de Looker para solicitar una exportación de estos datos.

Aloja mi propia instancia. ¿Debo hacer la actualización antes del 14 de agosto de 2023?

Si tu instancia es autoalojada, deberás realizar los cambios antes de actualizar a la versión de agosto de 2023 (versión 23.14) o cualquier versión posterior. Te recomendamos que comiences a realizar este trabajo lo antes posible para que puedas mantener una versión compatible y obtener la mejor experiencia con Looker.

Mi instancia está alojada en Looker, pero en el programa de ESR. ¿Debo hacer la actualización antes del 14 de agosto de 2023?

Deberás realizar los cambios antes de que tu instancia se actualice a la versión de agosto de 2023 (versión 23.14) o a cualquier versión posterior. Te recomendamos que comiences a realizar este trabajo lo antes posible, de modo que no tengas que preocuparte por el tiempo en el que tu instancia está programada para recibir esa actualización.

Leí la documentación, pero sigo teniendo problemas o no sé cómo proceder.

Los clientes que no puedan migrar correctamente a la API 4.0 deben comunicarse con la Asistencia de Looker.