Apex Academy
Módulo 11·01·25 min

HTTP callouts: Http, HttpRequest, HttpResponse

Un callout son tres objetos: la petición que montas (HttpRequest), el que la envía (Http) y la respuesta que vuelve (HttpResponse). Y una regla: mirar siempre el código de estado antes de fiarte del cuerpo.

En Admin esLa acción HTTP Callout de un flow, escrita por dentro

✓ En esta sub-lección

  1. 01Montar y enviar una petición HTTP desde Apex.
  2. 02Leer el código de estado y el cuerpo de la respuesta.
  3. 03Conocer los límites de los callouts: cuántos y cuánto tiempo.

La nutria: ¿Te acuerdas? · Repaso del Módulo 10

¿Qué hace un test cuando el código llama a un sistema externo?

Durante tres módulos, el código que llamaba al ERP venía hecho, como una caja cerrada. Ahora el equipo de cuentas quiere algo nuevo: consultar en el ERP el estado de una renovación concreta, desde Salesforce. Es la primera llamada que vas a escribir tú, línea a línea.

Tres objetos

Apex
HttpRequest req = new HttpRequest();               // 1 · la petición
req.setEndpoint('callout:ERP/renewals/ERP-100');   //     a dónde
req.setMethod('GET');                              //     qué quieres hacer

Http http = new Http();                            // 2 · el que la envía
HttpResponse res = http.send(req);                 // 3 · la respuesta

Integer status = res.getStatusCode();              // 200, 404, 500…
String body = res.getBody();                       // el contenido, normalmente JSON

El método dice qué quieres hacer: GET para leer, POST para crear, PUT o PATCH para cambiar, DELETE para borrar. Si envías datos, van en el cuerpo con setBody y una cabecera que diga en qué formato: setHeader('Content-Type', 'application/json'). La dirección empieza por callout:ERP porque es una : la verás en la lección 3.

LA PETICIÓN

GET  callout:ERP/renewals/ERP-100
req.setTimeout(20000);

EL ERP CONTESTA…

Monta la petición pieza a pieza, envíala y mira qué vuelve según responda el ERP.

El código de estado manda

Un error del otro sistema no lanza una excepción en Apex: http.send devuelve la respuesta y tu código sigue. Si el ERP contesta 404 (no existe) o 500 (se ha roto), el cuerpo no es lo que esperas. Por eso, antes de usar el cuerpo, mira getStatusCode(): 200 y 201 son éxito, 4xx es que la petición estaba mal, 5xx es que el otro sistema falló. Es el fallo que destapó el test del Módulo 10.

La nutria: ¿Y por qué no un Flow? Aquí Flow también llama

Con franqueza: la acción HTTP Callout de un flow monta esta misma petición con clics, y para una consulta sencilla es una buena opción. Este módulo no te pide abandonarla: te enseña lo que hay dentro, porque el puente del ERP necesita lo que los clics no dan, como reintentar con tu propia lógica (lección 6), exponer tu propia API (lección 4) o hablar con un sistema SOAP (lección 5).