Servicios web en Apex: los bloques básicos para magos de la web
Introducción:
En esta entrada profundizaré en la construcción de servicios web personalizados en Apex en Salesforce. Estos servicios son clave cuando necesitas que un proceso externo interactúe con Salesforce para leer o escribir datos y la API REST estándar se queda corta. Veremos cinco ejemplos de complejidad creciente, desde consultas estándar hasta actualizaciones.

Visión general de los servicios web personalizados
Veremos cinco ejemplos de servicios web personalizados:
GET con una lista estándar de SObjects: obtener datos con una lista estándar de SObjects.
Wrapper con respuesta JSON: mejorar la solicitud GET envolviéndola en una respuesta JSON.
Añadir parámetros: incluir parámetros en la solicitud GET para obtener datos más concretos.
POST para insertar: implementar una solicitud POST para insertar datos.
Devolver mensajes de error: gestionar y devolver correctamente los mensajes de error.
Implementar servicios web personalizados
Ejemplo 1: GET con una lista estándar de SObjects
En este ejemplo definimos un recurso REST con un URI personalizado y especificamos el verbo HTTP (GET). La clase debe declararse como global, y devolvemos una lista de cuentas estándar con una consulta sencilla.

Ejemplo 2: wrapper con respuesta JSON
Para controlar los datos que se devuelven al cliente, usamos un objeto de respuesta. En lugar de devolver una lista de SObjects, devolvemos una lista de objetos de respuesta personalizados, una representación ligera de un cliente con solo el ID y el nombre.

Ejemplo 3: añadir parámetros
Los parámetros son imprescindibles cuando necesitas los datos de un cliente concreto. Leyendo RestContext.params puedes obtener el ID del cliente y usarlo en la cláusula WHERE de la SOQL para filtrar los datos.

Ejemplo 4: POST para insertar
Cuando necesitas escribir datos, usas un método POST. En este ejemplo creamos un objeto de respuesta y un objeto de solicitud. El objeto de solicitud recibe un cliente con un nombre, y usamos el serializador JSON para serializar la solicitud en una clase concreta. Tras crear e insertar una cuenta nueva, se devuelve un estado de éxito.

Ejemplo 5: devolver mensajes de error
Este ejemplo se parece al ejemplo 4, pero incluye la gestión de errores. Si se produce una excepción, el error se captura, se añade a una lista y el código de estado se establece en 500 (o el número que prefieras).

Conclusión
Con estos ejemplos hemos mostrado los bloques básicos para crear servicios web personalizados en Apex en Salesforce. Empezando por una solicitud GET sencilla, hemos aumentado poco a poco la complejidad, con parámetros, solicitudes POST y gestión de errores.
No te lo pierdas
Gracias por leer; ¡tengo muchas ganas de compartir pronto contigo más aventuras llenas de conocimiento! Sigue atento aquí en www.SteveTechArc.com y en el canal de YouTube @SteveTechArc (opens in a new tab). Suscríbete y amplía tu comprensión de Salesforce y de cómo integrarlo con otros sistemas.
¡Ayudando a cambiar el mundo compartiendo conocimientos de integración con otros arquitectos y con quienes están en camino de serlo!
Transcripción hecha con ayuda de IA
STA 1.8