Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .
El enlace a la publicación original, lo encontrarás al final de este artículo.
…
Este artículo es una actualización de Hacer que los retiros de versiones de la API no sean operativos a partir de agosto de 2021.
En Summer '22 (junio), Salesforce retirará las API antiguas SOAP, REST y Bulk que van desde las versiones 7.0 a 20.0. Como consecuencia, estas API heredadas y las integraciones personalizadas que dependen de ellas dejarán de funcionar después del lanzamiento.
En esta publicación, presentaremos el plan de Salesforce para el retiro de la API heredada. Proporcionaremos recursos, como un script de utilidad e instrucciones, para ayudarlo a identificar si se ve afectado o no. Obtendrá consejos sobre cómo actualizar las integraciones que usan API heredadas y orientación sobre cómo planificar para el futuro.
Plan para el retiro de la API heredada
Salesforce ha mantenido una de las posturas de compatibilidad con versiones anteriores más sólidas de la industria. Por ejemplo, la versión 7.0 de la API de SOAP de Salesforce se lanzó en 2006. ¿Qué estaba haciendo hace 15 años? ¡No podrías haber estado hablando en un iPhone, tocando en un iPad, escribiendo código en Python 3.0, ejecutando JavaScript en Node.js o llamando a un Uber, porque ninguna de esas tecnologías existía en ese entonces!
La compatibilidad con las API heredadas y el mantenimiento de la compatibilidad con versiones anteriores tiene un costo para los proveedores de API, y Salesforce no está exento de esto. Por lo tanto, hemos iniciado una hoja de ruta para el retiro de la API heredada. Esto nos ayuda a centrar nuestros esfuerzos de desarrollo en agregar mejoras con cada nueva versión de la API, para que podamos ofrecer innovación manteniendo la confianza. Dato curioso: en realidad retiramos un pequeño conjunto de antiguas API de SOAP en 2018.
Con cada versión principal, las API de la plataforma de Salesforce se actualizan automáticamente a una nueva versión y cuentan con el respaldo de una política documentada de tres años después de la puesta en marcha. En el lanzamiento de Summer '21, alcanzamos el primer hito de nuestro último esfuerzo de retiro de API heredado. A partir de esta versión, todas las llamadas API SOAP, REST y Bulk con versiones anteriores a la v21.0 siguen funcionando, pero se consideran obsoletas y ya no se admiten .
Nota: En el contexto de esta publicación, usamos el término "API REST" para designar todas las API con URI de punto final en /services/data/vXX.Y/
donde XX.Y
es la versión de la API. Esto incluye la API REST de Lightning Platform "estándar" para trabajar con sObjects y registros, pero también los siguientes recursos:
Para el hito de Summer '22, observe los resultados de una solicitud REST a GET /services/data/v20.0
para comprender el conjunto de recursos de nivel superior que se verán afectados cuando se retiren los puntos finales v20.0.
Continuaremos implementando nuestro plan de retiro de API en versiones futuras. Estos son los próximos hitos clave (las fechas están sujetas a cambios):
- En verano del 22:
- Todas las API principales de SOAP, REST y Bulk con versiones que van desde v7.0 a v20.0 se retirarán formalmente y dejarán de funcionar;
- El soporte finalizará para las API con versiones que van desde v21.0 a v30.0
- Anunciaremos nuestro próximo conjunto de versiones establecidas para el retiro
- En Summer '23, las API principales con versiones que van desde v21.0 a v30.0 se retirarán formalmente y dejarán de funcionar.
Ahora que sabe lo que hemos planeado, hablemos sobre cómo puede determinar si se ve afectado.
Identificar el uso de la API heredada
Para ver si está utilizando API heredadas, puede crear una lista de todas las integraciones que usa su empresa preguntando, pero eso sería largo y propenso a errores. Por ejemplo, tendría que identificar clientes antiguos instalados localmente en las máquinas de los usuarios, como versiones antiguas de Data Loader o integraciones heredadas como Salesforce Office Toolkit no compatible. Afortunadamente, existen herramientas que te ayudarán a escanear el consumo de API de forma automatizada.
Todas las transacciones de la API de Salesforce se registran en los registros de Monitoreo de eventos. El monitoreo de eventos normalmente requiere una licencia específica, pero hemos expuesto el evento Uso total de la API ( ApiTotalUsage
) a todos los clientes de forma gratuita, para que pueda monitorear el consumo de la API heredada e identificar los clientes y las integraciones que deben actualizarse.
Veamos cómo puede usar este evento para detectar llamadas de API heredadas en su organización. El proceso completo está documentado en un artículo de conocimientos , pero hemos creado una pequeña herramienta de utilidad de Apex que automatiza esta tarea.
Automatice los controles con una utilidad
Dirígete a este repositorio y sigue las instrucciones de configuración. El código Apex del proyecto escanea sus registros de eventos ApiTotalUsage
e informa las llamadas a las API heredadas que se realizaron durante la ventana de retención de registros.
Las organizaciones habilitadas para API tienen acceso gratuito a los archivos de registro de eventos de uso total de API con retención de datos de un día. Por un costo adicional, puede acceder a este y todos los demás tipos de archivos de registro con una retención de datos de 30 días.
Si el escáner encuentra llamadas API heredadas en los registros de su organización, verá este tipo de salida:
Se encontraron versiones heredadas de la API en los registros: {SOAP v7, REST v20, BULK_AP v21}
Si ese es el caso, continúe con sus investigaciones manualmente (consulte la siguiente sección de esta publicación). De lo contrario, verá este mensaje:
No se encontró ninguna entrada de EventLogFile de tipo ApiTotalUsage.
Esto indica que no se llamó a ninguna API heredada durante la ventana de retención de registros.
Esto significa que aún podría haber algunas llamadas de API heredadas realizadas contra su organización, pero están fuera de la ventana de retención de registros, por lo que no podemos rastrearlas.
Realizar investigaciones manuales
Si necesita impulsar sus investigaciones más allá, este artículo de conocimiento describe el proceso bastante bien. En resumen, deberá ejecutar una consulta SOQL para recuperar los ID de los registros de eventos de ApiTotalUsage
. Luego, para cada registro, tendrá que usar un cliente HTTP como Postman para llamar a la API REST con la ID del registro para recuperar el archivo de registro asociado en formato CSV.
Como referencia, un registro de eventos ApiTotalUsage
se ve así:
El registro contiene campos clave que guiarán sus investigaciones:
El campo CLIENT_NAME
es especialmente útil para identificar aplicaciones e integraciones que realizan llamadas API que requieren investigación y ajustes. Siempre es una buena práctica utilizar el encabezado de solicitud Sforce-Call-Options con un nombre de cliente al realizar llamadas a la API. Esto lo ayuda a identificar las llamadas de su cliente al mirar los registros y ahorra tiempo para el control de la integración.
USER_ID
y CLIENT_IP
son útiles para identificar el origen de las llamadas API heredadas, pero existe la posibilidad de que estos valores se compartan entre varias aplicaciones en caso de que se realice una cuenta técnica de usuario/sistema (ID de usuario compartido) o llamadas desde una ubicación de oficina física ( dirección IP compartida).
Finalmente, los API_FAMILY
, API_VERSION
, API_RESOURCE
y HTTP_METHOD
le brindan pistas valiosas sobre el tipo de operaciones que realiza el cliente API.
Actualice las integraciones utilizando API heredadas
El procedimiento de actualización dependerá del tipo de API que esté utilizando, pero aquí hay una breve descripción general de lo que se requiere:
- Para llamadas API basadas en SOAP, genere un nuevo WSDL e incorpórelo a la integración afectada
- Para puntos finales REST, actualice el número de versión en el URI a la versión principal actual
- Aunque puede actualizar de manera similar los URI para puntos finales
/async
en el caso de Bulk API, la forma más gratificante de actualizar las llamadas heredadas es adoptar Bulk API 2.0 y disfrutar del flujo de trabajo más simple y los límites mejorados.
Tenga en cuenta que las aplicaciones pueden estar realizando llamadas API heredadas utilizando bibliotecas o complementos obsoletos, como la antigua interfaz COM de SForceOfficeToolkit
. Estas bibliotecas actúan como intermediarios entre las aplicaciones cliente y la API, manejando ciertas tareas implícitamente para que las integraciones sean más simples de codificar. El resultado de aprovechar dicha ayuda es que las definiciones de punto final que incluyen la versión en el URI se pueden enmascarar. Por lo tanto, asegúrese de profundizar en el código fuente si una aplicación afectada está utilizando dicha interfaz. Esta diligencia debida es especialmente necesaria cuando no escribió el código de la aplicación que usted o sus equipos poseen.
Sus usuarios pueden estar utilizando aplicaciones de escritorio, como Cargador de datos o Conectores para productos de Microsoft Office, para interactuar con Salesforce. Estas aplicaciones llaman a las API de la plataforma para realizar acciones. Y al igual que las API, Data Loader se versiona con cada versión principal. Por lo tanto, si usted o sus partes interesadas están usando versiones antiguas de Data Loader, puede apostar que están llamando a versiones antiguas de las API.
Con todo esto en mente, asegúrese de trabajar con sus administradores para actualizar a los paquetes más recientes para las soluciones de AppExchange instaladas en sus organizaciones. La comunidad de ISV ha recibido alertas de socios sobre estos programas de jubilación y está tomando medidas para ajustar sus aplicaciones según sea necesario.
Y recuerda: no importa el cambio, asegúrate de realizar pruebas de regresión para asegurarte de que todo funciona como se esperaba.
Plan para el futuro
Nuestra política documentada para el soporte de versiones de API es de tres años. Publicaremos retiros de versiones en futuros lanzamientos de verano con regularidad. Acostúmbrese a realizar pruebas de regresión en sus integraciones con cada versión principal tal cual con la versión actual de la API y con una actualización a la última versión. ¡Esto es parte de las mejores prácticas de CI/CD y asegurará que los retiros de versiones futuras no sean operativos!
En Summer '21, introdujimos un encabezado de advertencia en respuesta a las solicitudes de API REST que se realizan en versiones obsoletas de API. Verificar este encabezado lo ayuda a identificar automáticamente las llamadas API heredadas y lo alertará sobre otros posibles problemas con las solicitudes REST en el futuro.
Para obtener más información, consulte el artículo de conocimiento Retiro de las versiones 7.0 a 20.0 de la API de la plataforma Salesforce y el aviso de actualización de la versión "Retiro de las versiones 7.0 a la 20.0 de la API de la plataforma Salesforce" (desde Configuración, en el cuadro Búsqueda rápida, ingrese "Actualizaciones de versión"). Para obtener más información sobre el evento ApiTotalUsage
para EventLogFile
, consulte las notas de la versión de Summer '21 .
Por último, pero no menos importante, hable con sus ejecutivos de cuentas y equipos de éxito del cliente sobre estos retiros de versiones y cómo hacer un mejor uso de las últimas y mejores versiones de API que se envían en cada versión importante. Cada versión trae nuevos sObjects para acceder, campos adicionales en sObjects existentes y otras mejoras, incluido el rendimiento y la seguridad.
Sobre los autores
Kris Harrison es Director de Gestión de Producto en Salesforce dentro del área de Servicios de Plataforma. Sus equipos de productos se centran en muchos aspectos de la experiencia de la API de Salesforce, incluidas las API principales de SOAP, Bulk y REST, API SDLC e integraciones de API a través de servicios externos. Sígalo en Twitter @GETkharrison o consulte sus proyectos muy básicos de GitHub @krissirk .
Philippe Ozil es un defensor principal de desarrolladores en Salesforce, donde se enfoca en la plataforma de Salesforce. Escribe contenido técnico y habla con frecuencia en conferencias. Es un desarrollador de pila completa y disfruta trabajar en proyectos DevOps, robótica y realidad virtual. Sígalo en Twitter @PhilippeOzil o consulte sus proyectos de GitHub @pozil .
…
Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2022/03/prepare-for-legacy-api-retirement-in-summer-22.html