Módulos de extensión de Edge en contexto
Todos los módulos de biblioteca de las extensiones de Edge reciben un objeto context
cuando se ejecutan. Este documento describe las propiedades que proporciona el objeto context
y la función que desempeñan en los módulos de biblioteca.
Contexto de solicitud de Adobe (arc)
La propiedad arc
es un objeto que proporciona información sobre el evento que activa la regla. Las secciones siguientes describen las distintas subpropiedades que contiene este objeto.
event
El objeto event
representa el evento que activó la regla y contiene los siguientes valores:
logger.log(context.arc.event);
xdm
data
request
No debe confundirse con una solicitud del dispositivo cliente, request
es un objeto ligeramente modificado que procede de Adobe Experience Platform Edge Network.
logger.log(context.arc.request)
El objeto request
tiene dos propiedades de nivel superior: body
y head
. La propiedad body
contiene información del modelo de datos de experiencia (XDM) y se puede inspeccionar en Adobe Experience Platform Debugger cuando se navega a Launch y se selecciona la pestaña Rastro de Edge.
ruleStash rulestash
ruleStash
es un objeto que recopilará todos los resultados de los módulos de acción.
logger.log(context.arc.ruleStash);
Cada extensión tiene su propia área de nombres. Por ejemplo: si la extensión tiene el nombre send-beacon
, todos los resultados de las acciones send-beacon
se almacenarán en el área de nombres ruleStash['send-beacon']
.
El área de nombres es única para cada extensión y tiene un valor de undefined
al principio.
El área de nombres se sobrescribe con el resultado que devuelve cada acción. Por ejemplo, considere una extensión transform
que contenga dos acciones: generate-fullname
y generate-fulladdress
. Estas dos acciones se añaden a continuación a una regla.
Si el resultado de la acción generate-fullname
es Firstname Lastname
, la cadena de reglas aparecerá como se muestra a continuación una vez completada la acción:
{
transform: 'Firstname Lastname'
}
Si el resultado de la acción generate-address
es 3900 Adobe Way
, la cadena de reglas se mostrará como se indica a continuación una vez completada la acción:
{
transform: '3900 Adobe Way'
}
Observe que el "Nombre y apellido" ya no existen dentro de la pila de reglas, porque la acción generate-address
sobrescribió estos datos con un nuevo valor.
Si desea que ruleStash
almacene los resultados de ambas acciones dentro del área de nombres transform
, puede escribir un módulo de acción similar al ejemplo siguiente:
module.exports = (context) => {
let transformRuleStash = context.arc.ruleStash.transform;
if (!transformRuleStash) {
transformRuleStash = {};
}
transformRuleStash.fullName = 'Firstname Lastname';
return transformRuleStash;
}
La primera vez que se ejecuta esta acción, ruleStash
comienza como undefined
y, por lo tanto, se inicializa como objeto vacío. La próxima vez que se ejecute la acción, recibirá el valor ruleStash
que se devolvió con la llamada anterior a la acción. El uso de un objeto como ruleStash
permite agregar nuevos datos sin perder los datos que previamente definieron otras acciones de nuestra extensión.
Utilidades
La propiedad utils
representa un objeto que proporciona utilidades específicas del tiempo de ejecución de la etiqueta.
logger
La utilidad logger
permite registrar los mensajes que se mostrarán durante las sesiones de depuración al utilizar Adobe Experience Platform Debugger.
context.utils.logger.error('Error!');
El registrador tiene los métodos siguientes, donde message
es el mensaje que desea registrar:
log(message)
info(message)
warn(message)
error(message)
debug(message)
verbose
está habilitado en la consola del explorador.fetch
Esta utilidad implementa la API de búsqueda. Puede utilizar la función para realizar solicitudes a extremos de terceros.
context.utils.fetch('http://example.com/movies.json')
.then(response => response.json())
getBuildInfo
Esta utilidad devuelve un objeto que contiene información sobre la compilación de la biblioteca de tiempo de ejecución de la etiqueta actual.
logger.log(context.utils.getBuildInfo().turbineBuildDate);
El objeto contiene los valores siguientes:
turbineVersion
turbineBuildDate
buildDate
environment
development
, staging
y production.
A continuación se muestra un objeto getBuildInfo
de ejemplo para demostrar los valores que arroja:
{
turbineVersion: "1.0.0",
turbineBuildDate: "2016-07-01T18:10:34Z",
buildDate: "2016-03-30T16:27:10Z",
environment: "development"
}
getExtensionSettings
Esta utilidad arroja el objeto settings
que se guardó por última vez desde la vista de configuración de la extensión.
logger.log(context.utils.getExtensionSettings());
getSettings
Esta utilidad arroja el objeto settings
que se guardó por última vez desde la vista del módulo de biblioteca correspondiente.
logger.log(context.utils.getSettings());
getRule
Esta utilidad arroja un objeto que contiene información sobre la regla que activa el módulo.
logger.log(context.utils.getRule());
El objeto contendrá los valores siguientes:
id
name