PORTAL und PPS Knowledge Base

JSON-Feed

Der JSON-Feed ermöglicht es, bestimmte Inhalte des PORTALs per URL in Form von JSON-Objekten abzurufen.

Die JavaScript Object Notation (JSON) ist ein kompaktes Datenformat in einer einfach lesbaren Textform und dient dem Zweck des Datenaustausches zwischen Anwendungen.

Der Feed (von engl. to feed – im Sinne von füttern, einspeisen, zuführen) kann für und für genutzt werden. Durch die Verwaltung können Zugänge für bestimmte Feeds erstellt werden. Es kann z. B. eingestellt werden, welche Inhalte im Feed verfügbar sein sollen. Zugreifbar wird der Feed durch ein im System generiertes Zugriffstoken.

Funktionalitäten des JSON-Feeds

  • Abrufen von PORTAL-Inhalten im JSON-Format

  • Flexible Selektion der gewünschten Inhalte

  • Flexible Handhabung der zugreifbaren Inhalte pro Client

  • JSON-Feeds im PEIQ PORTAL basieren auf dem neuesten Standard

Inhaltsverzeichnis

Allgemeine Beschreibung

Im Gegensatz zum , bei dem bestimmte Zielseiten des PORTALs in Form einer XML-Struktur extrahiert bzw. gelesen werden können, liegt die Selektion der Inhalte beim JSON-Feed in der Hand des Benutzers bzw. der Benutzerin. Der Output des Feeds sind die selektierten Inhalte als JSON-Objekte, welche dann auf einer Zielseite verarbeitet werden können, z. B. in Form von Teasern o.ä.. Zugriff auf den Feed erhält nur, wer den dafür generierten (aktiven) Zugriffstoken hat.

Erstellung und Verwaltung

Die Erstellung und Verwaltung ist mit der Berechtigung “Zugang zur JSON-Feed-Zugangsverwaltung / Zugänge bearbeiten und löschen” möglich.

Bearbeitungsmaske in der JSON-Feed-Zugangsverwaltung

Die Verwaltung findet sich für berechtigte Benutzer:innen unter /admin/federation/client. Über “Zugang erstellen” lässt sich ein neuer Client für einen JSON-Feed generieren. Bearbeitungs- und Löschvorgänge kann der oder die Benutzer:in über die Übersichtsseite vornehmen.

Eingabefeld zum Erstellen eines neuen Clients

Generell können zwei Zugangsmodi konfiguriert werden

ZUGANG AKTIVIEREN Dieser Modus regelt den generellen Zugriff auf den Feed. Hierüber lässt sich der Zugriff temporär deaktivieren, ohne den Feed löschen zu müssen.

ZUGANG BESCHRÄNKEN Dieser Modus regelt die Selektion der zugreifbaren Inhalte. Ist die Zugriffsbeschränkung aus, können die Daten via der unten genannten URL-Parameter selektiert werden. Wird die Zugriffsbeschränkung eingeschalten, öffnet sich das folgende Formular. Hierüber kann genau spezifiziert werden, auf welche Inhalte der Feed eingeschränkt werden soll.

Zugriff

Zugriffs-URL für Beiträge und Schnappschüsse:

https://<URL-des-PORTALS.de>/a/federation/<Inhaltsform>.json?access_token=<ZUGRIFFSTOKEN>

Die Inhaltsform ist dabei mit folgenden Parametern zu belegen:

  • articlesfür Beiträge

  • imageposts für Schnappschüsse

Zugriffs-URL für Veranstaltungen:

https://<URL-des-PORTALS.de>/event/federation/events.json?access_token=<ZUGRIFFSTOKEN>

 

Das Zugriffstoken kann für den jeweiligen Feed über die Startseite der Verwaltung abgerufen werden. Über das Schlüssel-Icon wird das Token angezeigt und kann über das erscheinende Copy-Icon kopiert werden.

Parameter

Bei einem uneingeschränkten Feed lässt sich die Inhaltsselektion mittels angehängter Parameter steuern, welche hinten an die Grund-URL angehängt werden.

<Grund-URL-zum-Abrufen-des-Feeds-inklusive-Token>&<Parameter>=<Wert>

z. B. &category=sport

Folgende Parameter stehen zur Verfügung:

  • category Eine durch Komma getrennte Liste von normalisierten Kategorien, anhand deren die Beiträge gefiltert werden.

  • tag Eine durch Komma getrennte Liste von normalisierten Tags, anhand deren die Beiträge gefiltert werden. Mehrere Tags werden als OR Verknüpfung verwendet, es wird keine Schnittmenge aller angegebenen Tags gebildet.

  • location Eine durch Komma getrennte Liste von normalisierten Ortsnamen, anhand deren die Beiträge gefiltert werden.

  • limit Maximale Anzahl von zurück gelieferten Beiträgen. Der Default-Wert ist 10, maximal ist ein Wert von 100 erlaubt.

  • offset Die Anzahl der Beiträge der aktuellen Selektion, die übersprungen werden sollen.

Aus technischen Gründen darf die Summe von limit und offset den Wert 10.000 nicht überschreiten. Andernfalls liefert die API den HTTP Code 400 (Bad Request) zurück.

Bearbeitungsprotokoll

Über das Bearbeitungsprotokoll lässt sich nachvollziehen, wer, wann einen Zugang erstellt, bearbeitet oder gelöscht hat. Das Bearbeitungsprotokoll findet sich in der Verwaltung über das Optionsmenü.

Datenstruktur

Im Gegensatz zur werden die Daten beim JSON-Feed in Plain Text ausgegeben. Hierbei müssen bspw. nicht die Beitrags-ID und zusätzlich noch die jeweiligen Daten dazu gesondert gezogen werden. Die Ausgabe beinhaltet alle Informationen zum vorliegenden Inhalt.

Beitrag

{ "url": <string>, // URL des Beitrags im Portal "id": <int>, // Beitrags ID "created": <timestamp>, // Erstellungsdatum "published": <timestamp>, // Veröffentlichungsdatum "updated": <timestamp>, // Letzte Aktualisierung "title": <string>, // Beitrags Überschrift "comment_count": <int>, // Anzahl Kommentare "static_tags": [<string>], // Statische Tags / Flags "text_elements": <TextElements>, // Textelemente "user": <User>, // Beitrags-Autor / Owner "category": <Category>, // Beitrags-Kategorie, "location": <Location>, // Beitrags-Verortung "images": [<Image>], // Bilder des Beitrags "image_count": <int>, // Anzahl Bilder "tags": [<Tag>], // Tags des Beitrags }

Schnappschuss

{ "url": <string>, // URL des Schnappschuss im Portal "id": <int>, // Schnappschuss ID "created": <timestamp>, // Erstellungsdatum "published": <timestamp>, // Veröffentlichungsdatum "updated": <timestamp>, // Letzte Aktualisierung "title": <string>, // Schnappschuss Überschrift "static_tags": [<string>], // Statische Tags / Flags "image": [<Image>], // Bild des Schnappschuss "user": <User>, // Schnappschuss-Autor / Owner "location": <Location>, // Schnappschuss-Verortung "comment_count": <int>, // Anzahl Kommentare }

Veranstaltung

{ "url": <string>, // URL der Veranstaltung im Portal "id": <int>, // Veranstaltungs-ID "created": <timestamp>, // Erstellungsdatum "published": <timestamp>, // Veröffentlichungsdatum "image_count": <int>, // Anzahl Bilder "comment_count": <int>, // Anzahl Kommentare "title": <string>, // Veranstaltungs Überschrift "description": <string>, // Veranstaltungs Beschreibung "static_tags": [<string>], // Statische Tags / Flags "category": <Category>, // Veranstaltungs-Kategorie, "location": <Location>, // Veranstaltungs-Verortung "user": <User>, // Veranstaltungs-Autor / Owner "images": [<Image>], // Bilder der Veranstaltung "tags": [<Tag>], // Tags der Veranstaltung "eventitem_date": <timestamp>, // Datum der Veranstaltung "event_locations": <location>, // Veranstaltungs-Ort }

Text-Elemente

Der Text enthält HTML- und BBCODE-Elemente des Inhalts. Sind diese auf der Zielseite nicht gewünscht, müssen die Elemente an dieser Stelle herausgezogen werden.

Benutzer-Elemente

Bild-Elemente

 

Verwandte Seiten