- 18 Dec 2023
- 4 Minuten Lesezeit
- Drucken
Abfragen von UDC-Daten
- Aktualisiert am 18 Dec 2023
- 4 Minuten Lesezeit
- Drucken
Mit Hilfe des gfUdcConnectors können Sie dynamische Daten ganz einfach über die UDC-Schnittstelle abfragen. Im Folgenden wird erklärt, wie Sie den Connector in HTML-Basic- als auch HTML-Wizard Spots integrieren.
Einbinden der Bibliothek
Der gfUdcConnector wird innerhalb der index.html-Seite über das "Script"-Tag eingebunden, z.B.: <script src="PATH_TO_SCRIPT/gfUdcConnector.js"></script>
Instanzieren des gfUdcConnectors
Um die Funktionen des gfUdcConnectors aufrufen zu können, muss dieser innerhalb des eigenen Codes zuvor instanziert werden:
var udc = new GFUdcConnector();
udc.getVersion();
Objekttypisierung
UDC-Datenobjekte
Um den Aufbau der Daten besser zu veranschaulichen, wurden die einzelnen Objekte typisiert. Diese werden in den folgenden Kapiteln für die Funktionserklärungen herangezogen.
UdcData
UdcData: {
Success: boolean,
Result: DataSource[]
};
Property | Beschreibung |
---|---|
Success | true: valide Daten vorhanden false: Fehler beim Abfragen der Daten aufgetreten |
Result | Array von DataSource-Objekten, welche den mit dem Spot verknüpften Datenquellen entsprechen (siehe Spots mit UDC-Daten verknüpfen). Daher kann die Anzahl auch "0..n" betragen. |
UdcDataByKey
UdcDataByKey: {
Success: boolean,
Result: DataSource
};
Property | Beschreibung |
---|---|
Success | true: valide Daten vorhanden false: Fehler beim Abfragen der Daten aufgetreten |
Result | Das DataSource-Objekt, welches über die Bezeichnung aufgelöst wurde. |
DataSource
DataSource: {
Categories: Category[],
ContainerGuid: string,
Elements: Element[],
Key: string,
LastModified: string,
PluginInstanceName: string
};
Property | Beschreibung |
---|---|
Categories | Array von 0..n Category-Objekten |
ContainerGuid | Eindeutige Kennzeichnung der Datenquelle (bezogen auf Spot bzw. Spot-Instanz) |
Elements | Array von 0..n Element-Objekten |
Key | Bezeichnung der Datenquelle. Dieser Wert entspricht jenem, der im CMS bei der Bezeichnung der Datenquelle vergeben wurde (bezogen auf den Spot bzw. die Spot-Instanz). |
LastModified | Letzte Aktualisierung |
PluginInstanceName | Name der Datenquelle |
Category
Category: {
ExternalId: string,
Id: number,
LastModified: string,
MediaFiles: any[]
Name: string
};
Property | Beschreibung |
---|---|
ExternalId | Eindeutige Kennzeichnung |
Id | Interner Schlüssel für logische Verknüpfungen mit den Element-Objekten |
LastModified | Letzte Aktualisierung |
MediaFiles | Array an Dateiinformationen. Diese sind abhängig vom jeweiligen Plug-In und werden daher hier nicht näher beschrieben. |
Name | Name der Kategorie |
Element
Element: {
CategoryIds: number[],
ElementValues: any[],
ExternalId: string,
Guid: string,
Id: number,
LastModified: string,
MediaFileBaseUrl: string,
MediaFileDirectory: string,
MediaFiles: any[],
Name: string
};
Property | Beschreibung |
---|---|
CategoryIds | Verknüpfung mit 0..n Category-Objekten |
ElementValues | Objekt mit den entsprechenden Informationen in Form einer Liste mit Key-Value-Pairs. Diese sind bereits typisiert, jedoch abhängig vom jeweiligen Plug-In und werden daher hier nicht näher beschrieben. |
ExternalId | Eindeutige Kennzeichnung |
Id | Interner Schlüssel |
LastModified | Letzte Aktualisierung |
MediaFileBaseUrl | URL zu UDC-Medien am Server/Player |
MediaFileDirectory | Verzeichnis am Filesystem am Server/Player |
MediaFiles | Array von 0..n MediaFile-Objekten |
Name | Name des Elements |
MediaFile
MediaFile: {
Image: string
};
Property | Beschreibung |
Image | Dateiname des Mediums |
Debug objects
Die Ermittlung der für die Testverbindung notwendigen Parameter wird in Einrichten einer UDC-Testverbindung ausführlich erklärt.
DebugServer
DebugServer = {
url: string,
locationId: number,
spotId: number,
sessionId: string
};
Property | Beschreibung | Beispiel |
---|---|---|
locationId | Interner Schlüssel des Players | 65 |
sessionId | Gültiger Sitzungsschlüssel zur Authentifizierung | d3872316-dc92-48e8-8659-341084b2ee12 |
spotId | Interner Schlüssel des Spots | 697 |
url | Adresse zu den Server-Webservices | http://{DOMAIN}/GV2/Webservices/rest/gui/api/ |
DebugClient
Markup
DebugServer = {
ip: string,
siid: number
};
Property | Beschreibung | Beispiel |
---|---|---|
ip | IP-Adresse des zu testenden Players | 192.168.169.73 |
siid | Interner Schlüssel der Spot-Instanz | 529 |
DebugFile
Markup
DebugServer = {
url: string
};
Property | Beschreibung | Beispiel |
---|---|---|
url | Relativer Pfad zu lokal verfügbaren UDC-Daten | ./mock/udc.json |
Verfügbare Funktionen
getData
Mit dieser Funktion lassen sich alle mit dem Spot verknüpften UDC-Daten auf einmal abrufen.
Parameter:
Markup
{callback} onSuccess: returns UdcData, result as plain text {string}
{callback} onError: returns error message {string}
Beispiel:
Markup
var udc = new GFUdcConnector();
udc.getData(function(jsonData, plainData)
{
// data as JSON {UdcData}
console.log(jsonData);
// data as plain text {string}
console.log(plainData);
}, function(message)
{
console.error(message);
});
Erklärung:
Der Funktion getData werden zwei Callback-Funktionen übergeben. Die erste Funktion wird im Erfolgsfall mit dem UdcData-Objekt (siehe UdcData) und Daten als String aufgerufen. Die zweite Funktion wird im Fehlerfall mit der Fehlermeldung aufgerufen.
UdcData.Result ist ein Array von DataSource-Objekten, welche jenen Datenquellen entsprechen, die mit dem Spot bzw. der Spot-Instanz verknüpft worden sind. Die Anzahl beträgt 0..n Objekte, je nachdem wie viele Datenquellen dem Spot bzw. der Spot-Instanz zugeordnet wurden.
Die einzelnen Datenquellen müssen dann über die Bezeichnung der Datenquelle (Key) selbst identifiziert und entsprechend weiterverarbeitet werden.
Hinweis
Sind nur wenige Datenquellen mit dem Spot verknüpft, empfiehlt es sich, die Daten gleich über die Funktion GetDataByKey abzufragen, um sich die nachträgliche Identifikation zu ersparen. Dies erhöht jedoch gleichzeitig die Anzahl der HTTP-Abfragen und somit die Netzlast.
getDataByKey
Mit dieser Funktion lässt sich eine spezifische Datenquelle gezielt über die eindeutige Bezeichnung abfragen.
Hinweis
Bei vielen verknüpften Datenquellen empfiehlt es sich, die Datenquellen mit getData auf einmal abzufragen und im Anschluss weiterzuverarbeiten. Dies schont die Netzlast.
Parameter:
Markup
{string} key: unique designator
{callback} onSuccess: returns UdcDataByKey, result as plain text {string}
{callback} onError: returns error message {string}
Beispiel:
Markup
var udc = new GFUdcConnector();
udc.getDataByKey("News", function(jsonData, plainData)
{
// data as JSON {UdcData}
console.log(jsonData);
// data as plain text {string}
console.log(plainData);
}, function(message)
{
console.error(message);
});
Erklärung:
Der Funktion getDataByKey werden neben der eindeutigen Bezeichnung der Datenquelle zwei Callback-Funktionen übergeben. Die erste Funktion wird im Erfolgsfall mit dem UdcDataByKey-Objekt (siehe UdcDataByKey) und Daten als String aufgerufen. Die zweite Funktion wird im Fehlerfall mit der Fehlermeldung aufgerufen.
UdcDataByKey.Result ist ein DataSource-Objekt, welches einer dem Spot bzw. der Spot-Instanz zugeordneten Datenquelle entspricht. Kann die Datenquelle über die eindeutige Bezeichnung nicht gefunden werden, so ist UdcDataByKey.Result undefined.
setLocalTestData
Mit dieser Funktion lässt sich ein Spot während der Entwicklung gegen unterschiedliche UDC-Webservices bzw. -Ziele testen. Die Parameter der einzelnen Verbindungstypen müssen korrekt gesetzt werden, damit die Schnittstelle fehlerfrei funktioniert.
Hinweis
Diese Funktionalität ist ausschließlich für die Entwicklung gedacht und muss für die produktive Verwendung zumindest auskommentiert, besser jedoch gänzlich entfernt werden. Andernfalls kommt es zu unerwünschtem Fehlverhalten.
Parameter:
{DebugServer|DebugClient|DebugFile} connection
Beispiel:
Markup
var udc = new GFUdcConnector();
var connection = {
ip: "192.168.169.73",
siid: 529
};
udc.setLocalTestData(connection);
// fetch some data...
Erklärung:
In Abhängigkeit von der übergebenen Verbindungsart werden die Daten von der jeweiligen Quelle abgegriffen und zur Verfügung gestellt. Dabei wird unterschieden zwischen:
Testen gegen die Server-Webservices, Übergabe von DebugServer-Objekt
Testen gegen die Player-Webservices, Übergabe von DebugClient-Objekt
Testen gegen lokales File, Übergabe von DebugFile-Objekt
Weitere Details dazu finden Sie unter Einrichten einer UDC-Testverbindung.
registerLogHandler
Mit dieser Funktion lassen sich noch zusätzliche Logs seitens des gfUdcConnectors abrufen.
Parameter:
{callback} onLog: returns log messsag {string}
Beispiel:
Markup
var udc = new GFUdcConnector();
udc.registerLogHandler(function(message)
{
console.log(message);
});
Erklärung:
Der Funktion registerLogHandler wird als Parameter eine Callback-Funktion übergeben, welche im Falle eines Log-Eintrags seitens des gfUdcConnectors aufgerufen wird. Als Parameter wird die Log-Meldung übergeben.