Transportverfahren | Übertragung per Restful API (https) |
---|---|
Objekt | Artikel im JSON und Bilder als strukturiertes Objekt im JSON, Artikel-ID als eindeutiges Merkmal (document ID) |
Trigger | Zeitlich gesteuerter Poll durch PRINT NGEN (Pull alle 15 Sekunden, sofern vorhergehender Pull durchgeführt), Artikel-ID = eindeutiges Merkmal |
Typische Drittsysteme | Livingdocs |
...
Dokument-Id
Objekt/Ausgabe
Ressort
Ressortindex
Erscheinungstag
Formatname (Infoboxen erhalten immer den Formatnamen “Infobox”)
Folgende Inhaltsdaten der Livingdocs Artikel-Daten können in PRINT NGEN dargestellt werden:
...
Dem “PublicationEvents” gibt PRINT NGEN den “after”“id.gt”-Parameter zur Selektion der Events anhand der Event-“id” mit. Dieser Wert ist am Anfang “0” (oder ein eingerichteter Standard) und wird in PRINT NGEN anhand der maximalen “id” in der Antwort gemerkt, um beim nächsten Call wieder danach aufzusetzen, z. B.:
GET api/v1/publicationEvents?afterid.gt=[event.id]
Das JSON, das an PRINT NGEN zurück geliefert wird, enthält folgende Felder:
...
Feld | Inhalt | Option |
"projectId" | ID des Projektes | - |
"channelId" | ID des Kanals | - |
"documentId" | ID des Artikels | erforderlich |
"contentType" | “print” bei Printartikeln | - |
"documentType" | “article” bei Artikeln | - |
"design": { "name" } | Name des Designs | - |
"design": { "version" } | Versionsnummer des Designs | - |
"metadata": { "title" } | Titel (siehe “Titel des Artikels” unten) | optional |
"metadata": { "publish-date" oder: "publicationDate" } | Erscheinungstag im Format “2020-03-31”. Ein Erscheinungstag für alle übertragenen Ausgaben. | erforderlich, wenn der ET für alle Ausgaben gelten soll |
"metadata": { "publications" oder: "publication": [{ "date" }] | Erscheinungstag im Format “2020-03-31”. Ein unterschiedlicher Erscheinungstag je übertragener Ausgabe (Alternative zu einem Erscheinungstag für alle übertragenen Ausgaben) | erforderlich, wenn je Ausgabe ein unterschiedlicher ET gelten soll |
"metadata": { "publications" oder: "publication": [{ "object" }] | Objekt der Publikation | optional |
"metadata": { "publications" oder: "publication": [{ "name" }] | Name der Publikation | - |
"metadata": { "publications" oder: "publication": [{ "value" }] | Ausgabe der Publikation | erforderlich |
"metadata": { "publications" oder: "publication": [{ "category" }] | Ressort der Publikation | erforderlich |
"metadata": { "publications" oder: "publication": [{ "pageIndex" }] | Ressortindex der Publikation | optional |
"metadata": { "publications" oder: "publication": [{ "printContentType" }] | Formatname (z. B. Aufmacher, Standard) (Infoboxen erhalten immer den Formatnamen “Infobox”) | optional |
"metadata": { "publications" oder: "publication": [{"collective"}] | Kollektiv/Sonderthema der Publikation (Achtung: Der Wert darf nicht die Sonderzeichen *?<>&,%"'! enthalten!) | optional |
"metadata": { "print- categories-xxx" } | Print-Kategorie | - |
"metadata": { "expire-date" } | Endzeitpunkt im Format 2020-04-02T14:10:00.000Z | - |
...
Die Inhalte aller "content"-Components werden als (X)HTML erwartet. Daher müssen diese fünf Sonderzeichen des (X)HTML Markups innerhalb der "content"-Components maskiert werden:
<
→<
>
→>
&
→&
"
→"
'
→'
Feld | Inhalt | Option |
"id" | ID des Elements im Artikel | - |
"component" | Element des Artikels, z. B.:
| - |
"content": { component: "image", “content”: { “image”: { "originalUrl" }}} | URL des Original-Bildes | erforderlich |
"content": { component: "image", “content”: { “image”: { "url" }}} | URL des platzierten Bildes | optional |
"content": { component: "image", “content”: { “image”: { "width" }}} | Breite des Bildes | - |
"content": { component: "image", “content”: { “image”: { "height" }}} | Höhe des Bildes | - |
"content": { component: "image", “content”: { “image”: { "mimeTyp" }}} | image/jpeg | - |
"content": { component: "image", “content”: { “image”: { "imageService" }}} | imgix | - |
"content": { component: "image", “content”: { “image”: { "origins": { "name" }}}} | Ursprung/Quelle des Bildes z. B. hugo | optional |
"content": { component: "image", “content”: { “image”: { "origins": { "identifier" }}}} | Bild-ID |
|
"content": { component: "image", “content”: { “image”: { "crop": { "x" }}}} | X-Koordinate des Ausschnitts von links oben | - |
"content": { component: "image", “content”: { “image”: { "crop": { "y" }}}} | Y-Koordinate des Ausschnitts von links oben | - |
"content": { component: "image", “content”: { “image”: { "crop": { "width" }}}} | Breite des Ausschnitts | optional |
"content": { component: "image", “content”: { “image”: { "crop": { "height" }}}} | Höhe des Ausschnitts | optional |
"content": { component: "image", “content”: { “image”: { "crop": { "name" }}}} | Bezeichnung des Ausschnitts z. B. 16:9 | optional |
"content": { component: "image", “content”: { “image”: { "caption" }}} | Bildunterschrift | optional |
"content": { component: "image", “content”: { “image”: { "source" }}} | Bildquelle | optional |
"content": { component: "head" oder: "header", content: { "catchline" }} | Dachzeile des Artikels | optional |
"content": { component: "head" oder: "header", content: { "title" }} | Titel des Artikels | erforderlich |
"content": { component: "head" oder: "header", content: { "lead" }} | Unterzeile des Artikels | optional |
"content": { component: "head" oder: "header", content: { "author" }} | Autor:in des Artikels | optional |
"content": { component: "head" oder: "header", content: { "authorShortnames" }} | Autor:innenkürzel | optional |
"content": { component: "head" oder: "header", content: { "city" }} | Ort des Artikels | optional |
"content": { component: "lead-p", content: { "text" }} | Vorspann des Artikels | optional |
"position" | z. B. fixed | - |
"content": { component: "p", content: { "text" }} | Absatz eines Artikels | optional |
"content": { component: “subtitle”, “content“: { “title“ }} | Zwischentitel im Artikel | optional |
"content": { component: “list”, “containers”: { “list” }} | Liste im Artikel | optional |
"content": { component: “list” , “containers”: { “list”: [{ “component”: “list-item”, “content”: { “text” }}]}} | Listenelement | optional |
"content": { component: “quote” , “content”: { “text” }} | Zitat im Artikel | optional |
"content": { component: “quote” , “content”: { “source” }} | Autor:in/Quelle des Zitats | optional |
"content": { component: "question" , "content": { "text" }} | Frage | optional |
"content": { component: "answer" , "content": { "text" }} | Antwort | optional |
"content": {"component": "infobox", | Infobox im Artikel (in PRINT NGEN als eigenständiger Artikel) | optional |
...
Include Page | ||||
---|---|---|---|---|
|
Nur für PEIQ Mitarbeiter:innen: