Integración de API en el editor de reglas
La API de integración en el editor de reglas se encuentra en el programa de usuario anticipado. Puede escribir a aem-forms-ea@adobe.com desde su ID de correo electrónico oficial para unirse al programa de primeros usuarios y solicitar acceso a esta funcionalidad.
El Editor de reglas visual en Forms adaptable admite la integración directa de API sin crear un modelo de datos de formulario. Puede conectarse a un extremo de API introduciendo la dirección URL de la API (en formato JSON) o importando la configuración mediante un comando cURL. Una vez integrada, la acción Invocar servicio se puede usar para llamar a la API.
Los campos de formulario se pueden asignar directamente a los parámetros de entrada definidos en la configuración de la API. Del mismo modo, los parámetros de salida se pueden asignar a campos de formulario mediante la opción carga útil de evento para la respuesta de API correspondiente.
Además, el Editor de reglas visuales le permite definir controladores de éxito y controladores de errores al invocar un servicio. Los controladores de éxito especifican las acciones que se ejecutarán después de una llamada de API correcta, mientras que los controladores de error definen cómo debe responder el formulario cuando se produce un error.
Comparación: métodos de integración de API
Configuración de integración de API
La captura de pantalla siguiente muestra la ventana de configuración de integración de API:
Opciones de configuración clave
Configuración de integración de API
- Importar desde cURL: configure la integración de la API pegando un comando cURL listo para usar en lugar de introducir manualmente detalles como la URL de la API, el método HTTP, los encabezados y los parámetros.
- Nombre para mostrar: Nombre personalizado para el servicio API.
- URL de API: extremo del servicio de API.
- Seleccionar método HTTP: método de petición HTTP utilizado para llamar a la API.
- Tipo de contenido: Define el formato de solicitud y respuesta.
- Se requiere cifrado: (Opcional) Garantiza que los datos confidenciales se cifren durante la transmisión.
- Ejecutar en el cliente: cuando está habilitada, la llamada de API se realiza desde el cliente (explorador) en lugar del servidor.
Tipo de autenticación
- Opciones: Ninguno, Básico, Clave de API, OAuth 2.0.
Parámetros de entrada
-
Cargar JSON para la entrada: cargue un archivo JSON de muestra para rellenar automáticamente las asignaciones de entrada.
- Nombre: nombre del parámetro de entrada requerido por la API.
- Tipo: Tipo de datos de entrada (cadena, número, booleano, etc.).
- En: ubicación del parámetro (Consulta, Encabezado o Cuerpo).
- Valor predeterminado: Valor precargado si no lo proporciona el usuario.
- Agregar: opción para agregar parámetros de entrada adicionales.
Parámetros de salida
-
Cargar JSON para la salida: cargue una respuesta de API de ejemplo para generar automáticamente asignaciones.
- Name: nombre del parámetro de salida de la respuesta de API.
- Tipo: tipo de datos esperado del parámetro de salida (cadena, número, etc.).
- En: Define dónde se espera el valor asignado.
- Agregar/Eliminar: Agregue nuevas asignaciones o elimine las existentes.
Caso de uso: Rellenar campos de país en un formulario de solicitud de visa
Escenario: una agencia gubernamental proporciona un formulario de solicitud de visa en línea con los siguientes campos:
- Nombre completo (texto)
- Fecha de nacimiento (fecha)
- País de ciudadanía (lista desplegable)
- Número de pasaporte (texto)
- País de emisión de pasaporte (lista desplegable)
- País de destino (menú desplegable)
- Fecha prevista de llegada (fecha)
En lugar de mantener una lista estática de países, el formulario recupera dinámicamente información del país (continente, capital, códigos Alpha ISO, etc.) mediante la API getcountry name:
https://secure.geonames.org/countryInfoJSON?username=aemforms
Esto garantiza que los solicitantes siempre vean una lista actualizada y precisa de países mientras rellenan el formulario.
Implementación mediante la integración de API en el editor de reglas
Puede integrar una API sin crear un modelo de datos de formulario haciendo clic en el botón Crear integración de API del Editor de reglas.
Se ha configurado un servicio API con el nombre getcountry en Configuración de integración de API en el Editor de reglas:
- URL de extremo de API →
https://secure.geonames.org/countryInfoJSON?username=aemforms - Método HTTP → GET
- Tipo de contenido → JSON
- Entrada →
usernamepasada como parámetro de consulta (aemforms). - Salida → campos de respuesta como
continent,capital,countrynames,isoAlpha3ylanguagesestán asignados a campos de formulario.
En el Formulario de solicitud de visa, los tres campos desplegables, País de ciudadanía, País de emisión de pasaporte y País de destino, están enlazados a la acción Invocar servicio.
Cuando se carga el formulario, Invocar servicio obtiene la lista de países de la API. A continuación, la respuesta se asigna para rellenar automáticamente las opciones desplegables.
Por ejemplo, cuando el usuario abre País de ciudadanía, la lista de países se muestra dinámicamente desde la respuesta de la API.
Del mismo modo, País de emisión de pasaporte y País de destino utilizan la misma llamada de API, lo que garantiza datos coherentes y actualizados en los tres campos.
Implementación del mecanismo de reintento para errores de API
Cuando falla una solicitud de API, a menudo resulta útil volver a intentar la solicitud antes de informar de un error al usuario. Puede implementar un mecanismo de sondeo y reintentos escribiendo código personalizado en el archivo function.js.
El siguiente ejemplo muestra cómo controlar los errores de API con hasta dos intentos de reintento y un retroceso exponencial entre reintentos:
/**
* Handles request retries with up to 2 retry attempts
* @param {function} requestFn - The request function to execute
* @return {Promise} A promise that resolves with the response or rejects after all retries
*/
function retryHandler(requestFn) {
const MAX_RETRIES = 2;
/**
* Attempts the request with retry metadata
* @param {number} retryCount - Current retry attempt count
* @return {Promise} The request promise
*/
function attemptRequest(retryCount = 0) {
// Include retry metadata if this is a retry
const requestOptions = retryCount > 0 ? {
headers: {
'X-Retry': 'true',
'X-Retry-Count': retryCount.toString(),
'X-Retry-Time': new Date().toISOString()
},
body: {
retry: true,
retryCount: retryCount,
timestamp: Date.now()
}
} : undefined;
return requestFn(requestOptions)
.then(function(response) {
if (response && response.status >= 400) {
console.warn('Request failed with status ' + response.status);
throw new Error('Request failed with status ' + response.status);
}
return response;
})
.catch(function(error) {
console.warn('Request attempt ' + (retryCount + 1) + ' failed:', error.message);
// Retry if max attempts not reached
if (retryCount < MAX_RETRIES) {
console.log('Retrying request, attempt ' + (retryCount + 2) + ' of ' + (MAX_RETRIES + 1));
// Exponential backoff delay: 1s, 2s, 4s...
const delay = Math.pow(2, retryCount) * 1000;
return new Promise(function(resolve) {
setTimeout(resolve, delay);
}).then(function() {
return attemptRequest(retryCount + 1);
});
} else {
// All retries exhausted
console.error('All retry attempts failed. Final error:', error.message);
throw new Error('Request failed after ' + (MAX_RETRIES + 1) + ' attempts: ' + error.message);
}
});
}
// Start the first attempt
return attemptRequest(0);
}
En el código anterior, la función retryHandler administra las solicitudes de API con reintentos automáticos en caso de error. Toma una función de solicitud (requestFn) e intenta la solicitud hasta dos veces, añadiendo metadatos para cada reintento.
Preguntas frecuentes
-
¿Necesito crear un modelo de datos de formulario para integrar una API en un Forms adaptable?
No. Con el Editor de reglas visuales, puede integrar directamente las API usando la opción Crear integración de API sin crear un modelo de datos de formulario. Este método es más adecuado para casos de uso ligeros o específicos de formularios. -
¿Puedo proteger las llamadas de API realizadas desde el Editor de reglas?
Sí. La configuración de integración de API proporciona opciones de autenticación como Básico, Clave de API y OAuth 2.0. También puede habilitar Se requiere cifrado para garantizar que los datos confidenciales se transmitan de manera segura.