REST-Dienst im Magnolia - CMS

Die Seite wird erstellt Lennard Hoppe
 
WEITER LESEN
Zentrale Informatik

REST-Dienst im Magnolia
Webinhalte via REST-Schnittstelle manipulieren

Zentrale Informatik, nicole.stutz@zi.uzh.ch      27.04.2018
Inhaltsverzeichnis                                                                  REST-Dienst im Magnolia

Inhaltsverzeichnis
1 Einleitung                                                                                                 4
1.1 Inhalte bearbeiten                                                                                       4
1.2 Anwendungen für REST-Anfragen                                                                            4
1.3 REST API Endpoints                                                                                       4
1.4 Berechtigung                                                                                             5
1.5 Hinweis zum Benutzername und Passwort beim cURL-Request                                                  5

2 Wie erzeugt man Inhalte im CMS?                                                                            6
2.1 Aufbau einer Seite                                                                                       6
2.2 Eine Seite abholen (GET)                                                                                 7
2.3 Eine „content“-Area abholen (GET)                                                                        8
2.4 Eine „promos“-Area abholen (GET)                                                                         8
2.5 Eine Komponente in der „content“-Area abholen (GET)                                                      8

3 Beispiel um eine komplette Seite zu erstellen                                                              9
3.1 Seite erzeugen (PUT)                                                                                     9
3.2 „Content“-Area erzeugen (PUT)                                                                          10
3.3 „Promos“-Area erzeugen (PUT)                                                                           10
3.4 „Text-Image“-Komponente mit Inhalt erzeugen (PUT)                                                      10
3.5 „Teaser“-Komponente mit Inhalt erzeugen (PUT)                                                          11

4 Beispiel um ein Asset zu erstellen                                                                       13
4.1 Asset-Knoten erstellen (PUT)                                                                           13
4.2 Bilddaten im Stringformat dem Asset-Knoten hinzufügen (PUT)                                            13
4.3 cURL-Aufruf mit externer Datei                                                                         14

5 Template Namen                                                                                           15
5.1 Seiten                                                                                                 15
5.2 Komponenten                                                                                            15

6 Comand Endpoints                                                                                         16
6.1 Seite publizieren (POST)                                                                               16
6.2 Seite löschen (DELETE)                                                                                 16

7 Firefox Addon: RESTED                                                                                    17
7.1 Inhalt abholen (GET)                                                                                   17
7.2 Seite erzeugen (PUT)                                                                                   18

Seite 2                                                     Universität Zürich, Zentrale Informatik, 27.04.2018
Inhaltsverzeichnis                           REST-Dienst im Magnolia

8 Divers                                                            19

Seite 3              Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Einleitung

1 Einleitung
Der REST-Dienst ermöglicht das Bearbeiten von CMS-Inhalten über eine Web-API. Man kann
beliebige Knoten im JCR erstellen, lesen, aktualisieren und löschen.

Bei Magnolia (https://documentation.magnolia-cms.com) finden sie weitere Informationen zum REST-
Dienst und dem JCR (Java Content Repository).

1.1 Inhalte bearbeiten

Grundsätzlich sollen Inhalte nur im Authoren-Server bearbeitet werden (https://cmsauth.uzh.ch)
und nicht auf den Live-Servern. Dies aus verschiedenen Gründen, u.a. der Vermeidung von
Inkonsistenzen. Im JCR-Repository werden einmalige Hashwerte, sogenannte UUID’s (Universally
Unique Identifier), für jeden Knoten erzeugt und Magnolia nutzt diese zur Referenzierung von
Inhalten. Erstellt man nun Inhalte auf einem Server und anschliessend direkt auf den anderen
Servern, dann generiert es unterschiedliche UUID‘s. Was schlussendlich zu unerwünschten Effekten
zwischen den Servern führt.

Das korrekte Vorgehen ist daher, alle Inhalte nur im Authoren-Server zu manipulieren und dann zu
publizieren, um die Inhalte auf die Live-Server zu bringen. Dies bewahrt die Konsistenz.

1.2 Anwendungen für REST-Anfragen

Es gibt verschiedene Möglichkeiten zum Manipulieren der Inhalte. Magnolia erwähnt diese:

RESTED (Browser Addons)                           Webbrowser Addon für Firefox
Advanced Rest Client                              Webbrowser Addon für Chrome
cURL                                              Kommandozeilen Programm
Swagger UI Tool                                   Applikation im Magnolia (ist bei uns nicht
                                                  verfügbar)

In diesem Dokument wird mit cURL Beispielen gearbeitet. Zusätzlich gibt es einen kleinen Absatz zur
Verwendung der „RESTED“-Anwendung (Firefox Addon: RESTED).

1.3 REST API Endpoints

Über Endpoints setzt man Anfragen ans Magolia ab. Hierzu eine Übersicht über die Endpoints:
nodes, properties, commands .

Seite 4                                                       Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Einleitung

            Über den Endpoint nodes manipuliert man JCR Knoten.
            Über den Endpoint properties manipuliert man JCR Properties.
            Über den Endpoint commands kann man Inhalte löschen oder publizieren.

1.4 Berechtigung

Zur Verwendung der REST-API benötigt es eine Authentifizierung, welche im Form eines
Benutzerkontos und Passworts, bei der cURL-Anfrage mitangegeben werden. Um Inhalte bearbeiten
zu können, braucht ihr Benutzerkonto korrekte Lese- und Schreibrechte der entsprechenden
Publikation. Im Fall der „Sandbox“-Publikation, müsste dem Konto die Gruppe „sandbox-
administrators“ oder „sandbox-authors“ zugewiesen sein.

Die Verwaltung der Berechtigung übernimmt der Webadministrator einer Publikation.

Hinweis zu den Live-Servern. Um Inhalte dort direkt anzusprechen, braucht das Benutzerkonto eine
zusätzliche Rolle. Diese kann nur vom CMS-Team zugewiesen werden. Bitte erstellen sie ein Ticket
beim IT-Service Desk, dazu den Grund, wieso sie direkt im Live-Bereich arbeiten wollen.

1.5 Hinweis zum Benutzername und Passwort beim cURL-Request

Beim Request braucht es ein gültiges Konto und Passwort, wie z.B:

--user resttestuser:someD!:f3a

Sodass dies in der Kommandozeile korrekt erkannt wird, am besten in Hochklammern setzen:

--user 'resttestuser:someD!:f3a'

Wohlmöglich klappt auch folgendes:

--user 'resttestuser':'someD!:f3a'

Seite 5                                                         Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Wie erzeugt man Inhalte im CMS?

2 Wie erzeugt man Inhalte im CMS?
Mit cURL-Requests können Manipulationen am Inhalt vorgenommen werden, wie z.B. um eine Seite
zu erstellen. Um diese Manipulationen vorzunehmen, braucht es Kenntnisse über die Seitenstruktur,
Komponenten und Templatenamen, wie sie im Magnolia definiert sind. Diese Anleitung soll dabei
helfen entsprechende Requests vorzubereiten. In der Onlinedokumentation bei Magnolia ist der
REST-Dienst zudem gut beschrieben.

Sobald man alle notwendigen Angaben hat, löst man einen cURL-Request an das System aus, um
entsprechende Anpassung zu machen. Im Request werden dabei die notwendige Struktur und Inhalte
in einem JSON-Datenformat übergeben. Der cURL-Befehl verwendet dabei die gebräuchlichen
HTTP-Methoden: GET, PUT, DELETE

Vorweg dieser Tip: Will man Inhalte manipulieren, man aber aber noch wie die Struktur des Inhalts
ist, dann hilft es wenn man zuerst bestehende Inhalte per REST abholt (GET-Request). Als
Response erhält man die Struktur des Inhalts im JSON-Format ( Siehe „Eine Seite abholen“ ).

2.1 Aufbau einer Seite

Aller Inhalt und der Aufbau einer Seite, werden in Knoten abgelegt, welche wiederum in einer
Baumhierarchie abgebildet sind. Im folgenden Diagramm repräsentieren Kreise die Knoten und die
Rechtecke zeigen Properties. Ein Knoten kann weitere Knoten haben, sogenannte Kindknoten.
Properties haben keine Kindknoten und haben nur einfache Datenwerte (Boolean, String, etc.).

Dieses Diagramm zeigt den Aufbau einer simplen Seite. Zuoberst wird die Seite (page) definiert.
Darunter sind fixe Bereiche (area) der Seite definiert. Diese Areas sind sozusagen Container in der
anschliessend die Inhalte als Komponenten (component) abgelegt werden.

Seite 6                                                        Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Wie erzeugt man Inhalte im CMS?

Will man nun Inhalte über den Rest-Dienst aufbauen, dann muss pro Knoten ein Request abschickt
werden. Die Properties werden dabei dem jeweiligen Knoten übergeben.

Folgender Screenshot zeigt fix definierte Layoutbereiche (Area) einer Seite. Die roten Bereiche
zeigen die Areas „content“ und „promos“. Beim normalen Arbeiten im Autoring wird man mit diesen
Bereichen nicht konfrontiert. Beim Arbeiten über den REST-Dienst ist es aber notwendig diese zu
kennen. Diese Bereiche liegen als eigene Knoten vor und man muss diese explizit ansprechen.

2.2 Eine Seite abholen (GET)

In diesem Beispiel wird die Seite /sandbox/de abgeholt. In der Antwort erhält man die Seite und
deren Properties. Die Kindseiten werden bei diesem Befehl aber nicht übertragen.
curl --user ':' -H "Accept: application/json"
http://cmsauth.uzh.ch/.rest/nodes/v1/website/sandbox/de

Seite 7                                                    Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Wie erzeugt man Inhalte im CMS?

Diese Beispielseite hat mehr als 40 Properties, aber diese müssen nicht alle für das Erzeugen einer
Seite, angegeben werden. Es braucht nur wenige Properties um eine korrekte Seite zu erstellen
( siehe Kapitel 3). Viele Properties werden von Magnolia automatisch erzeugt, sobald die Seite zum
ersten mal geöffnet wird. Ein wichtiges Property ist z.B. der Knotennamen, dieser wird über das
Property „name“ und den Wert „de“ definiert.

Tip: Mit der Query Angabe depth=n (default ist 0) kann man rekursiv Kindknoten abholen. Dabei gibt
man die Tiefe mit einer Zahl an.

z.B Drei Level tief : https://cmsauth.uzh.ch/.rest/nodes/v1/website/sandbox/de?depth=3

2.3 Eine „content“-Area abholen (GET)

curl --user ':' -H "Accept: application/json"
https://cmsauth.uzh.ch/.rest/nodes/v1/website/sandbox/de/content

2.4 Eine „promos“-Area abholen (GET)

curl --user ':' -H "Accept: application/json"
https://cmsauth.uzh.ch/.rest/nodes/v1/website/sandbox/de/promos

2.5 Eine Komponente in der „content“-Area abholen (GET)

curl --user ':' -H "Accept: application/json"
https://cmsauth.uzh.ch/.rest/nodes/v1/website/sandbox/de/content/0

Seite 8                                                        Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Beispiel um eine komplette Seite zu erstellen

3 Beispiel um eine komplette Seite zu erstellen
Will man eine Seite mit einer Text/Image-Komponente und einer Teaser Komponente erzeugen, dann
muss man mindestens fünf curl-Requests in dieser Reihenfolge abschicken:

     1)   Seite erzeugen
     2)   „Content“-Area erzeugen
     3)   „Promos“-Area erzeugen
     4)   Text/Image-Komponente mit Inhalt erzeugen
     5)   Teaser-Komponente mit Inhalt erzeugen

Angaben zu den JSON-Daten
    Über Magnolia-Knotentypen kann man hier nachlesen:
          o https://documentation.magnolia-cms.com/display/DOCS55/Node+types
    Das Property „identifier“ soll nicht gesetzt werden, Magnolia generiert diesen Hashwert.
    Das Property „mgnl:template“ muss man bei den „pages“ und „components“ angeben.
    Das Arbeiten über den REST-Dienst erfordert korrekte Angaben, fehlerhafte Request werden
      verworfen. Leider sind die Fehlermeldungen oft knapp oder bleiben ganz aus.

3.1 Seite erzeugen (PUT)

curl https://cmsauth.uzh.ch/.rest/nodes/v1/website/sandbox/de -H "Accept:
application/json" -H "Content-Type: application/json" -X PUT --user
':' --data '{"name": "resttest", "type": "mgnl:page", "path":
"/sandbox/de/resttest", "properties": [{"name": "title", "type": "String",
"multiple": false, "values": ["Hello REST"]}, {"name": "mgnl:template", "type":
"String", "multiple": false, "values": ["uzh-wcms-
publications:pages/uzhST04ContentCol3"]}]}'

Seite 9                                                    Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Beispiel um eine komplette Seite zu erstellen

Wenn alles stimmt dann müsste nun eine neue Seite mit dem Namen „resttest“ an diesem Pfad
liegen „/sandbox/de/resttest“.

Diese Seite hat aber noch keinen Inhalt, es ist sozusagen ein leerer Rahmen. Es müssen nun die
Area(s) erstellt werden, um so anschliessend die eigentlichen Inhalte hinzufügen zu können.

3.2 „Content“-Area erzeugen (PUT)

curl https://cmsauth.uzh.ch/.rest/nodes/v1/website/sandbox/de/resttest -H "Accept:
application/json" -H "Content-Type: application/json" -X PUT --user
':' --data '{"name": "content", "type": "mgnl:area", "path":
"/sandbox/de/resttest/content", "properties":[],"nodes":null}'

3.3 „Promos“-Area erzeugen (PUT)

curl https://cmsauth.uzh.ch/.rest/nodes/v1/website/sandbox/de/resttest -H "Accept:
application/json" -H "Content-Type: application/json" -X PUT --user
':' --data
'{"name":"promos","type":"mgnl:area","path":"/sandbox/de/resttest/promos","properti
es":[],"nodes":null}'

3.4 „Text-Image“-Komponente mit Inhalt erzeugen (PUT)

curl https://cmsauth.uzh.ch/.rest/nodes/v1/website/sandbox/de/resttest/content -H
"Accept: application/json" -H "Content-Type: application/json" -X PUT --user
':' --data
'{"name":"0","type":"mgnl:component","path":"/sandbox/de/resttest/content/0","prope
rties":[{"name":"html","type":"String","multiple":false,"values":["created by
mgnl\n\ncreated by mgnl\n\ncreated by mgnl\n\ncreated by
mgnl\n"]},{"name":"subtitle","type":"String","multiple":false,"values":["create
d by mgnl"]},
{"name":"mgnl:template","type":"String","multiple":false,"values":["uzh-wcms-
publications:components/uzhIE06TextImage"]},

Seite 10                                                   Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Beispiel um eine komplette Seite zu erstellen

{"name":"imageFloat","type":"String","multiple":false,"values":["none"]},{"name":"i
mageLink","type":"String","multiple":false,"values":["link"]}],"nodes":null}'

3.5 „Teaser“-Komponente mit Inhalt erzeugen (PUT)

curl https://cmsauth.uzh.ch/.rest/nodes/v1/website/sandbox/de/resttest/promos -H
"Accept: application/json" -H "Content-Type: application/json" -X PUT --user
':' --data
'{"name":"0","type":"mgnl:component","path":"/sandbox/de/resttest/promos/0","proper
ties":[{"name":"mgnl:template","type":"String","multiple":false,"values":["uzh-
wcms-publications:components/uzhIE02Teaser"]}

,{"name":"text","type":"String","multiple":false,"values":["Das Westpfälzer
Wandermusikantentum war ein Wandergewerbe, das sich etwa ab 1830 in einem
Teilgebiet der Westpfalz, das heute Musikantenland genannt wird,
entwickelte.\n"]},{"name":"frameborder","type":"Boolean","multiple":false,"valu
es":["false"]},{"name":"loadAnimation","type":"Boolean","multiple":false,"values":[

Seite 11                                            Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Beispiel um eine komplette Seite zu erstellen

"true"]},{"name":"scrollbar","type":"Boolean","multiple":false,"values":["true"]},{
"name":"title","type":"String","multiple":false,"values":["my rest
teaser"]},{"name":"representation","type":"String","multiple":false,"values":["STAN
DARD"]},{"name":"imageLink","type":"String","multiple":false,"values":["link"]}],"n
odes":null}'

Seite 12                                            Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Beispiel um ein Asset zu erstellen

4 Beispiel um ein Asset zu erstellen
Um ein Asset zu erstellen, braucht es zwei cURL-Anfragen. Der erste Request erstellt den Asset-
Knoten (sozusagen den Container für das Bild) und der Zweite fügt die Bilddaten dem Asset hinzu.

In diesem Beispiel wird dieses PNG-Bild raufgeladen:

Das Bild muss als String kodiert werden, es empfiehlt sich dazu das Base64 Format.

Kodierungswerkzeuge, z.B.:
   - Convert Image to Base 64 (https://codebeautify.org/image-to-base64-converter)
   - Convert Base64 to Image (https://codebeautify.org/base64-to-image-converter)
   - Linux Shell mit dem Befehl base64

4.1 Asset-Knoten erstellen (PUT)

curl https://cmsauth.uzh.ch/.rest/nodes/v1/dam/sandbox -H "Accept:
application/json" -H "Content-Type: application/json" -X PUT --user
':' --data '{"name": "logo.png", "type":"mgnl:asset",
"path":"/sandbox/logo.png", "properties":[{"name": "type", "type": "String",
"multiple": false, "values": ["png"]},{"name": "title","type": "String",
"multiple": false, "values": ["asset REST test"]},{"name": "name","type": "String",
"multiple": false, "values": ["logo.png"]},{"name": "type","type": "String",
"multiple": false, "values": ["png"]}]}'

4.2 Bilddaten im Stringformat dem Asset-Knoten hinzufügen (PUT)

curl https://cmsauth.uzh.ch/.rest/nodes/v1/dam/sandbox/logo.png -H "Accept:
application/json" -H "Content-Type: application/json" -X PUT --user
':' --data '{"name": "jcr:content", "type": "mgnl:resource",
"path": "/sandbox/logo.png/jcr:content", "properties": [{"name": "jcr:data","type":
"Binary","multiple": false,"values":
[ "iVBORw0KGgoAAAANSUhEUgAAAIkAAAAsCAIAAADelwzDAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEnSURBVHhe7dyxDQIxDEbhgxGgoaCkYhqmYh6GYAYqBqCBFQC
hCFkgI6S7OM/R/5q4/5QmsjK7rjdDpy33xzLlbF5OxavDe7M4ncv0ana4lClbndh8eHjlckps86eHF98pmc
1IDy+mUwKbSh5eHCeoTbCHV1snkA3EwyveqbEN3MMrxqmBTVIPr3pOoTadqdhqCMW92XQM8+y+W5VpuvSex
k023GTDTTbcZMNNNtxkw0023GTDTTbcZMNNNtxkw0023GTDTTbcZMNNNtxkwy3O5rYlLilOVY1dDu1Aja2T
HajvtDv4o8Y2NrhTjIcNZGODOMV72KA2tmCnth62BDa2Sk4cD1syG9tIJ6aHLbGN7U8nvoetExvbh1MuD1u
HNu/0L4eq0zA8ACLDYZbPVkBtAAAAAElFTkSuQmCC"]},{"name":"height","type":
"Long","multiple": false,"values": [5]},{"name": "width","type": "Long","multiple":
false,"values": [5]},{"name": "extension","type": "String","multiple":
false,"values": ["png"]},{"name": "fileName","type": "String","multiple":
false,"values": ["logo.png"]},{"name":"jcr:mimeType","type": "String","multiple":

Seite 13                                                      Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Beispiel um ein Asset zu erstellen

false,"values": ["image/png"]},{"name":"size","type": "Long","multiple":
false,"values": [402]}]}'

Zu Beachten ist das Attribut „size“. Wird es nicht angegeben, dann wird das Asset erzeugt und es
sieht eigentlich gut aus im Asset-Bereich. Aber verlinkt man es, kann es sein, dass es nicht erscheint.

4.3 cURL-Aufruf mit externer Datei

Die Parameterlänge eines cURL-Aufrufs in der Command Line ist begrenzt, dies kann umgangen
werden, indem man den Datenteil aus einer Datei abholt.

cURL-Aufruf (PUT)
curl https://cmsauth.uzh.ch/.rest/nodes/v1/dam/sandbox/logo.jpg -H "Accept:
application/json" -H "Content-Type: application/json" -X PUT --user
':' -d @file.data

Dateiinhalt: In der Datei z.B. file.data setzt man den „data“-Bereich des CURL Aufrufs zusammen.
{"name": "jcr:content", "type": "mgnl:resource", "path": "/sandbox/logo.png/jcr:content", "properties":
[{"name": "jcr:data","type": "Binary","multiple":
false,"values":"iVBORw0KGgoAAAANSUhEUgAAAIkAAAAsCAIAAADelwzDAAAAAXNSR0IArs4c6Q
AAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEnSURBVHhe7dyxDQIxD
EbhgxGgoaCkYhqmYh6GYAYqBqCBFQChCFkgI6S7OM/R/5q4/5QmsjK7rjdDpy33xzLlbF5OxavDe7
M4ncv0ana4lClbndh8eHjlckps86eHF98pmc1IDy+mUwKbSh5eHCeoTbCHV1snkA3EwyveqbEN3MM
rxqmBTVIPr3pOoTadqdhqCMW92XQM8+y+W5VpuvSexk023GTDTTbcZMNNNtxkw0023GTDTTbcZ
MNNNtxkw0023GTDTTbcZMNNNtxkwy3O5rYlLilOVY1dDu1Aja2THajvtDv4o8Y2NrhTjIcNZGODOMV
72KA2tmCnth62BDa2Sk4cD1syG9tIJ6aHLbGN7U8nvoetExvbh1MuD1uHNu/0L4eq0zA8ACLDYZbP
VkBtAAAAAElFTkSuQmCC"]},{"name":"height","type": "Long","multiple": false,"values": [5]},{"name":
"width","type": "Long","multiple": false,"values": [5]},{"name": "extension","type": "String","multiple":
false,"values": ["png"]},{"name": "fileName","type": "String","multiple": false,"values":
["logo.png"]},{"name":"jcr:mimeType","type": "String","multiple": false,"values":
["image/png"]},{"name":"size","type": "Long","multiple": false,"values": [402]}]}

Seite 14                                                          Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Template Namen

5 Template Namen
Diese Liste ist nicht vollständig.

5.1 Seiten

Seitentyp                            Template Name
Inhaltsseite 3-spaltig               uzh-wcms-publications:pages/uzhST04ContentCol3
Inhaltsseite 2-spaltig               uzh-wcms-publications:pages/uzhST04ContentCol2
Inhaltsseite 1-spaltig               uzh-wcms-publications:pages/uzhST04ContentCol1
Übersichts-Seite                     uzh-wcms-publications:pages/uzhST05Overview
News-Übersicht                       uzh-wcms-publications:pages /uzhST06NewsOverview
News                                 uzh-wcms-publications:pages /uzhST07News
Team-Übersicht                       uzh-wcms-publications:pages/uzhST08Team
Person                               uzh-wcms-publications:pages/uzhST09Person
Homepage                             uzh-wcms-publications:pages/uzhST01Home
Übersichts-Homepage                  uzh-wcms-publications:pages/uzhST02HomeOverview
Suche                                uzh-wcms-publications:pages/uzhTT02SearchResult

5.2 Komponenten

Komponententyp                       Template Name
RSS Reader                           uzh-wcms-publications:components /uzhIE01RssReader
Teaser                               uzh-wcms-publications:components /uzhIE02Teaser
LinkList                             uzh-wcms-publications:components /uzhIE07Linklist
QuickLinkList                        uzh-wcms-publications:components /uzhIE07QuickLinklist
HTML                                 uzh-wcms-publications:components /uzhIE09HTML
Inhaltsverzeichnis                   uzh-wcms-publications:components /uzhIE05TableOfContents
Text /Bild-Komponente                uzh-wcms-publications:components /uzhIE06TextImage
Formular                             uzh-wcms-publications:components /uzhIE10Form
ZORA                                 uzh-wcms-publications:components /uzhIE14Zora
Unterseiten-Verzeichnis              uzh-wcms-publications:components /uzhIE16SubpageList
Referenz Teaser                      uzh-wcms-publications:components /uzhIE17ReferenceTeaser
iFrame                               uzh-wcms-publications:components /uzhIE18IFrame

Seite 15                                                       Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Comand Endpoints

6 Comand Endpoints

6.1 Seite publizieren (POST)

Funktioniert im derzeitigen Setup nicht. Kann aber durch entsprechende Anpassung in der
Konfiguration lauffähig gemacht werden. Momentan ist noch unklar ob das Publizieren (Aktivieren)
von Inhalten freigeben werden soll, respektive wir warten dazu Kundenanfragen ab.

curl http://cmsauth.uzh.ch/.rest/commands/v2/default/activate -H "Content-Type:
application/json" -X POST --user ':' --data '{"repository":
"website", "path": "/sandbox/de/resttest", "recursive": "false"}'

6.2 Seite löschen (DELETE)

curl http://cmsauth.uzh.ch/.rest/nodes/v1/website/sandbox/de/resttest -X DELETE --
user ':'

Seite 16                                                    Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Firefox Addon: RESTED

7 Firefox Addon: RESTED
Im Vergleich zur cURL-Anwendung, ist das Addon einiges komfortabler. Man kann sich eigene
Kollektions aufbauen, indem man dort seine Requests speichert und wieder bequem lädt. Zum
Testen ist es sehr praktisch, aber es scheint keine Funktion zur Automatisierung zu geben.

7.1 Inhalt abholen (GET)

Seite 17                                                Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Firefox Addon: RESTED

7.2 Seite erzeugen (PUT)

Bisher ist es mir nicht gelungen eine Seite, mit all ihren Properties, über die RESTED-Anwendung
einzuspielen. Hier einmal mein erster Versuch.

Wohlmöglich müssen die Properties einzeln über den properties Endpoint gesetzt werden.

Seite 18                                                    Universität Zürich, Zentrale Informatik, 27.04.2018
REST-Dienst im Magnolia
Divers

8 Divers
Online JSON Editor              http://jsoneditoronline.org/
Bilder in Base64 konvertieren   https://www.base64-image.de/

Seite 19                                              Universität Zürich, Zentrale Informatik, 27.04.2018
Sie können auch lesen