Contesto nei moduli di estensione edge
A tutti i moduli libreria nelle estensioni edge viene fornito un oggetto context
quando vengono eseguiti. Questo documento descrive le proprietà fornite dall'oggetto context
e il ruolo che svolgono nei moduli libreria.
Contesto della richiesta Adobe (arc)
La proprietà arc
è un oggetto che fornisce informazioni sull'evento che attiva la regola. Le sezioni seguenti descrivono le varie sotto-proprietà contenute in questo oggetto.
event
L’oggetto event
rappresenta l’evento che ha attivato la regola e contiene i seguenti valori:
logger.log(context.arc.event);
xdm
data
request
Da non confondere con una richiesta del dispositivo client, request
è un oggetto leggermente modificato proveniente da Adobe Experience Platform Edge Network.
logger.log(context.arc.request)
L’oggetto request
ha due proprietà di livello principale: body
e head
. La proprietà body
contiene informazioni su Experience Data Model (XDM) e può essere esaminata in Adobe Experience Platform Debugger quando si passa a Launch e si seleziona la scheda Edge Trace.
ruleStash rulestash
ruleStash
è un oggetto che raccoglierà ogni risultato dai moduli di azione.
logger.log(context.arc.ruleStash);
Ogni estensione dispone di un proprio namespace. Ad esempio, se l'estensione ha il nome send-beacon
, tutti i risultati delle azioni send-beacon
saranno memorizzati nello spazio nomi ruleStash['send-beacon']
.
Lo spazio nomi è univoco per ciascuna estensione e all'inizio ha un valore undefined
.
Lo spazio nomi viene sovrascritto con il risultato restituito da ogni azione. Ad esempio, si consideri un'estensione transform
contenente due azioni: generate-fullname
e generate-fulladdress
. Queste due azioni vengono poi aggiunte a una regola.
Se il risultato dell'azione generate-fullname
è Firstname Lastname
, dopo il completamento dell'azione verrà visualizzato lo stash della regola:
{
transform: 'Firstname Lastname'
}
Se il risultato dell'azione generate-address
è 3900 Adobe Way
, dopo il completamento dell'azione verrà visualizzato lo stash della regola:
{
transform: '3900 Adobe Way'
}
Si noti che "Nome Cognome" non esiste più all'interno dello stash della regola, perché l'azione generate-address
lo ha sovrascritto con un nuovo valore.
Se vuoi che ruleStash
memorizzi i risultati di entrambe le azioni all'interno dello spazio nomi transform
, puoi scrivere il modulo di azione in modo simile all'esempio seguente:
module.exports = (context) => {
let transformRuleStash = context.arc.ruleStash.transform;
if (!transformRuleStash) {
transformRuleStash = {};
}
transformRuleStash.fullName = 'Firstname Lastname';
return transformRuleStash;
}
La prima volta che questa azione viene eseguita, ruleStash
inizia come undefined
e viene quindi inizializzata come oggetto vuoto. La volta successiva in cui viene eseguita l'azione, riceve ruleStash
restituito quando l'azione era stata precedentemente chiamata. L'utilizzo di un oggetto come ruleStash
consente di aggiungere nuovi dati senza perdere i dati precedentemente impostati da altre azioni dell'estensione.
Utilità
La proprietà utils
rappresenta un oggetto che fornisce utility specifiche per il runtime tag.
logger
L’utility logger
consente di registrare i messaggi che verranno visualizzati durante le sessioni di debug con Adobe Experience Platform Debugger.
context.utils.logger.error('Error!');
Il registratore dispone dei seguenti metodi, dove message
è il messaggio da registrare:
log(message)
info(message)
warn(message)
error(message)
debug(message)
verbose
è abilitata nella console del browser.fetch
Questa utility implementa l’API Fetch. Puoi utilizzare la funzione per effettuare richieste agli endpoint di terze parti.
context.utils.fetch('http://example.com/movies.json')
.then(response => response.json())
getBuildInfo
Questa utility restituisce un oggetto contenente informazioni sulla build della libreria runtime corrente di tag.
logger.log(context.utils.getBuildInfo().turbineBuildDate);
L’oggetto contiene i valori seguenti:
turbineVersion
turbineBuildDate
buildDate
environment
development
, staging
e production.
Di seguito è riportato un oggetto getBuildInfo
di esempio per dimostrare i valori restituiti:
{
turbineVersion: "1.0.0",
turbineBuildDate: "2016-07-01T18:10:34Z",
buildDate: "2016-03-30T16:27:10Z",
environment: "development"
}
getExtensionSettings
Questa utility restituisce l’ultimo oggetto settings
salvato dalla vista di configurazione dell’estensione.
logger.log(context.utils.getExtensionSettings());
getSettings
Questa utility restituisce l’oggetto settings
più recente salvato dalla vista del modulo libreria corrispondente.
logger.log(context.utils.getSettings());
getRule
Questa utility restituisce un oggetto contenente informazioni sulla regola che attiva il modulo.
logger.log(context.utils.getRule());
L’oggetto conterrà i seguenti valori:
id
name