PEIQ Knowledge Base
[0-6] INBOUND DPA wireQ API
Transportverfahren | Übertragung per Restful API (https) |
---|---|
Objekt | JSON |
Trigger | Zeitlich gesteuerter Poll durch PRINT NGEN (Pull jede Minute, sofern vorhergehender Pull durchgeführt) |
Unterstützte Drittsysteme | DPA |
Beispieldaten |
|
Typische Drittsysteme | DPA |
Per API-Poll werden die aktuellen Agenturmeldungen und Bilder, die über die wireQ API von DPA zur Verfügung stehen, abgerufen und nach PRINT NGEN importiert.
Funktionalitäten der DPA wireQ API
Die Schnittstelle dient dem Import von DPA-Agenturmeldungen und -Bildern nach PRINT NGEN
Die Agenturmeldungen und Bilder sind anschließend in PRINT NGEN verfügbar
PRINT NGEN pullt in regelmäßigen Abständen die wireQ API, gemäß https://api-portal.dpa-newslab.com/doc/format (Version Mai 2024)
Inhaltsverzeichnis
Aufbereitung und Übertragung der Daten
Folgende Metadaten der Agenturmeldungen können in PRINT NGEN dargestellt werden:
Gesendet-Datum
ID
Dateiname
Revisionsnummer
Vorgänger-Verknüpfung
Status
Sprache
Priorität
Überschrift
Nachrichtentyp
Objektrecht=dpa
Stichworte
Stadt
Ressort
Dienst=weblines
Folgende Inhaltsdaten der Agenturmeldungen können in PRINT NGEN dargestellt werden:
Titel
Text
Notizblock
Folgende Metadaten der Bilder können in PRINT NGEN dargestellt werden:
Pixeldaten
Dateiname
IPTC-Metadaten entsprechend folgender Seite: Auslesen der IPTC-Tags bei Bildern
Workflow
Durch entsprechend automatisierte Workflows werden die aktuellen Agenturmeldungen und Bilder in regelmäßigen Abständen abgefragt und in PRINT NGEN erstellt. Die Meldungen stehen anschließend zur Recherche und Verwendung in PRINT NGEN bereit.
Eine Verwendung der Meldung in einem Artikel ist in der Ergebnisliste als Verlinkung mit direkter Absprungmöglichkeit zum Artikel sichtbar. Direkt von dort kann diese auf die Seite gezogen werden.
Gibt es bei einer Agenturmeldung eine Vorgänger-Nachfolger-Beziehung, bleibt die alte Agenturmeldung wie bisher in PRINT NGEN bestehen und es wird eine neue Agenturmeldung erstellt. An der aktuellen Meldung wird zudem eine Referenz-Eigenschaft gesetzt, um jeweils den Vorgänger bzw. Nachfolger öffnen zu können.
Beim Import der Bilder werden über die IPTC Daten entsprechende Metadaten, wie Quelle, Bildunterschrift, Ort, Dienst etc. ausgelesen (vgl. Auslesen der IPTC-Tags bei Bildern).
Bilder und Grafiken stehen über Suchmasken zur Recherche bereit und können von dort auf die Seite gezogen werden.
Mitwirkungspflichten der Kund:innen
Bitte übermitteln Sie uns für die Einrichtung die kundenspezifische, von DPA genannte base-URL.
Beispiel
wireQ API
Per API-Poll werden in regelmäßigen Abständen die aktuellen Agenturmeldungen und Bilder, die über die wireQ API von DPA zur Verfügung stehen, abgerufen (vgl. https://api-portal.dpa-newslab.com/doc/apis) und nach PRINT NGEN importiert.
Endpunkt GET /entries.json
Über den GET /entries.json Endpunkt erhält PRINT NGEN im JSON mehrere Agenturmeldungen mit Bilder-URLs zurück. Die Meldungen werden nach einem Zwischenspeichern im Filesystem nach PRINT NGEN importiert. Die Bilder werden direkt, d. h. ohne Zwischenspeichern, importiert.
Ist das article_html-Feld befüllt, werden jedoch keine verfügbaren Bilder mitgeliefert, wird nur eine Meldung in DAgnText erstellt. “Verfügbar” heißt, bei Abfrage des Bild-URLs kommt ein Bild zurück. Laut DPA wireQ API Doku sind Bilder nur 2 Tage verfügbar.
Ist zu einer Meldung im JSON das article_html-Feld leer, sind jedoch zugehörige Bilder verfügbar, werden nur die Bilder importiert und keine Meldung in DAgnText erstellt.
Bei leerem article_html-Feld ohne verfügbare Bilder werden weder Bilder noch Meldung in NGEN erstellt.
Bei befülltem article_html-Feld und verfügbaren Bildern werden Bilder und DAgnText in NGEN erstellt.
Das JSON, das an PRINT NGEN nach dem Absetzen des Requests zurück geliefert wird, enthält folgende Metadaten:
Feld | Inhalt | Option |
"entries" | Enthält eine Liste von Agenturmeldungen (in PRINT NGEN DB-Tabelle “DAgnText”) mit Bildern. | erforderlich |
"entries": [{"updated"}] |
| optional |
"entries": [{"version_created"}] | Wenn kein updated-Datum mitgeliefert wird, wird “version_created” verwendet und in das Gesendet-Datum “IptcGD” übernommen. | optional |
"entries": [{"urn"}] | Feld liefert die ID, Wert im JSON: "urn:newsml:dpa.com:<Datum>:<ID>":
Feld liefert zudem Dateiname, Wert im JSON: "urn:newsml:dpa.com:<Dateiname (mit Zeichenersetzung)>":
| erforderlich |
"entries": [{"version"}] | Revisionsnummer “IptcRev” wird verwendet, um die Vorgänger-Meldung zu ermitteln und in “DAgnVorgaenger” zu referenzieren | erforderlich |
"entries": [{"pubstatus"}] | Feld liefert den Status; Werte im JSON: "usable", "withheld", "canceled":
| optional |
"entries": [{"language"}] | Sprache “DAgnSprache” | optional |
"entries": [{"urgency"}] | Priorität “IptcPri” | optional |
"entries": [{"headline": "“}] | Überschrift “IptcUeb” | optional |
"entries": [{"categories": [{"type": "dnltype:genre", "name": "", }]}] und "entries": [{"genre_names": ["“]}] | Nachrichtentyp “IptcST” (z. B. Meldung, Vorschau) | optional |
- (ausprogrammiert) | Objektrecht “IptcOR=dpa” | - |
"entries": [{"categories": [{"type": "dnltype:dpasubject", "name": ““ }]}] | Stichworte “IptcSti” | optional |
"entries": [{"dateline": ““}] (ohne Inhalt in Klammern) | Stadt “IptcStadt” | optional |
"entries": [{"categories": [{"type": "dnltype:desk", "qcode": "dpacat:<Kürzel>", “name”: ““}]}] | Ressort “IptcRes” | optional |
- (ausprogrammiert) | Dienst “IptcDie=weblines” | - |
"entries": [{"_wireq_receipt": “<receipt>“ }] | Feld im JSON wird verwendet, um je Agenturmeldung den DELETE-Request abzusetzen. | erforderlich |
Inhalt:
Feld | Inhalt | Option |
"entries": [{"kicker"}] | Übernahme als Text | optional |
"entries": [{"headline"}] | Übernahme im “<Titel>”-Tag | optional |
"entries": [{"subhead"}] | Übernahme als Text | optional |
"entries": [{"teaser"}] | Übernahme als Text | optional |
"entries": [{"dateline"}] | Übernahme als Text | optional |
"entries": [{"article_html"}] | Übernahme als Text | optional |
"entries": [{“infobox_html”}] | Übernahme im “<dpa-Notizblock>”-Tag | optional |
"entries": [{“linkbox_html”}] | Übernahme als Text | optional |
"entries": [{“associations”: [{"type": "image", “url”: ““ }]}] | Feld im JSON wird verwendet, um die Bilder abzurufen und nach PRINT NGEN in die DB-Tabelle “DBild” zu importieren. | optional |
"entries": [{“associations”: [{"type": "graphic", “url”: ““ }]}] | Feld im JSON wird verwendet, um die Bilder abzurufen und nach PRINT NGEN in die DB-Tabelle “DBild” zu importieren. | optional |
Endpunkt DELETE /entry/{receipt}
PRINT NGEN löscht anschließend die einzelnen entries per DELETE /entry/{receipt} Request, damit diese nicht erneut in den GET-Requests mitkommen.
Fehler-Behandlung
Erhält PRINT NGEN beim Absetzen eines Requests einen Error zurück, da z. B. eine falsche / abgelaufene URL hinterlegt ist, wird dieser im Log-File dokumentiert.
Verwandte Seiten
Nur für PEIQ-Mitarbeiter:
https://peiq.atlassian.net/wiki/spaces/CORE/pages/1575321744