Named Credentials y Remote Site Settings
Salesforce no deja llamar a una dirección que el Admin no haya autorizado. Una Named Credential guarda en Setup la dirección y la forma de autenticarse; el código solo escribe callout:Nombre, y ninguna clave vive en el código.
✓ En esta sub-lección
- 01Explicar por qué un callout a una URL sin autorizar falla.
- 02Usar una Named Credential en lugar de una URL y una clave escritas en el código.
- 03Entender por qué eso hace el código igual en sandbox y en producción.
La nutria: ¿Te acuerdas? · Repaso de la lección 2
El JSON del ERP trae un nombre que tu clase molde no tiene. ¿Qué pasa al deserializar?
Revisando el código del puente encuentras el cliente de la API de impuestos, de un compañero: la dirección escrita a mano y, en la línea siguiente, la clave de producción en una cabecera. Cualquiera con acceso al código la puede leer, está copiada en el repositorio para siempre, y en la sandbox ese código llama al sistema de verdad.
Salesforce no llama a cualquier sitio
Por seguridad, un callout a una dirección que nadie ha autorizado falla con «Unauthorized endpoint». Hay dos formas de autorizarla. La antigua es Setup → Remote Site Settings: una lista de direcciones permitidas, y nada más; la clave seguiría en el código. La buena es una : autoriza la dirección y además guarda cómo autenticarse.
// Antes: dirección y clave a la vista
req.setEndpoint('https://tax.partner-northwind.com/v2/rates/' + country);
req.setHeader('Authorization', 'Bearer clave-de-produccion-1234');
// Después: el código solo nombra la credencial
req.setEndpoint('callout:Tax_API/v2/rates/' + country);¿Qué se ve en el código?
la dirección y la clave, para cualquiera que lo abra
¿A dónde llama este entorno?
al sistema de producción, siempre
¿Cambiar la clave?
cambiar el código y desplegar, con tests
En la sandbox, este código llama al sistema de producción con la clave de producción.
- La clave no está en el código ni en el repositorio: vive cifrada en Setup, y quién puede usarla se decide con un permission set.
- El mismo código sirve en todos los entornos: en la sandbox, la credencial apunta al sistema de pruebas; en producción, al de verdad.
- Cambiar la clave es una tarea de Admin en Setup, sin tocar código ni desplegar.
La nutria: Esto lo configuras tú mejor que nadie
La nutria: ¿Y por qué no un Flow? Aquí Flow te obligaba a hacerlo bien