Project

General

Profile

Actions

Magnolia interface » History » Revision 1

Revision 1/6 | Next »
Enis Nuredini, 14.06.2024 16:07


Magnolia interface

  1. Zur Authentifizierung wird ein folgender Header benutzt:
    'header:Authorization: Basic ', TO_BASE64('username:password')
    

    Der dafür benötigte User wird in Magnolia erstellt (Schreibrechte)
  1. Danach bauen wir das ganze HTML zusammen welches wir exportieren möchten.
  1. Damit der JSON String des HTML Outputs ohne Probleme durchgeht werden alle \r, \n, \t mit whitespaces ersetzt. Vertical bars (|) werden mit '|' ersetzt. Und non-printable characters ([\\x00-\\x19]) mit leerem String.

Neue Page erstellen lassen

API Link: https://cmsauth.uzh.ch/.rest/nodes/v1/website/geo/en/{{pageParent:RE:alnumx}}
JSON: {"name": "{{pageName:RE:alnumx}}", "type": "mgnl:page", "properties": [{"name": "title", "type": "String", "values": ["{{pageTitle:RE:alnumx}}"]}, {"name": "windowTitle", "type": "String", "values": ["{{windowTitle:RE:alnumx}}"]}, {"name": "navigationTitle", "type": "String", "values": ["{{navTitle:RE:alnumx}}"]}, {"name": "hideInNav", "type": "Boolean", "values": ["true"]}, {"name": "mgnl:template", "type": "String", "values": ["uzh-wcms-frontend:pages/page"]} ]}
Method: PUT
authHeader: 'header:Authorization: Basic ', TO_BASE64('username:password')

Create content area

API Link: https://cmsauth.uzh.ch/.rest/nodes/v1/website/geo/en/{{webPath:RE:alnumx}}
JSON: {"name": "content", "type": "mgnl:area", "properties":[],"nodes":null}
Method: PUT
authHeader: 'header:Authorization: Basic ', TO_BASE64('username:password')

Create content element

API Link: https://cmsauth.uzh.ch/.rest/nodes/v1/website/geo/en/{{webPath:RE:alnumx}}/content
JSON: {"name": "0", "type": "mgnl:component", "properties": [{"name":"html","type":"String","values":["{{html:RE:all:s}}"]}, {"name":"mgnl:template","type":"String","values":["uzh-wcms-frontend:components/textImage"]} ]}
Method: PUT
authHeader: 'header:Authorization: Basic ', TO_BASE64('username:password')

Update existing content

API Link: https://cmsauth.uzh.ch/.rest/nodes/v1/website/geo/en/{{webPath:RE:alnumx}}/content/0
JSON: {"properties": [{"name":"html","type":"String","values":["{{html:RE:all:s}}"]},{"name":"mgnl:template","type":"String","values":["uzh-wcms-frontend:components/textImage"]} ]}
Method: POST
authHeader: 'header:Authorization: Basic ', TO_BASE64('username:password')

Publish new content

API Link: https://cmsauth.uzh.ch/.rest/commands/v2/default/activate
JSON: {"repository": "website", "path": "/geo/en/{{webPath:RE:alnumx}}", "recursive": "true", "modifiedOnly": "true"}
Method: POST
authHeader: 'header:Authorization: Basic ', TO_BASE64('username:password')

Export assets (pdf, pictures)

Create asset node

API Link: https://cmsauth.uzh.ch/.rest/nodes/v1/dam/geo/geolean/{{assetFolder:RE}}
JSON: {"name": "{{assetId:R}}", "type":"mgnl:asset", "properties": [{"name": "type", "type": "String", "values": ["{{extension:RE:alnumx}}"]}, {"name": "title", "type": "String", "values": ["{{nameOfFile:RE:allbut:s}}"]} ]}
Method: PUT
authHeader: 'header:Authorization: Basic ', TO_BASE64('username:password')

Create asset content

API Link: https://cmsauth.uzh.ch/.rest/nodes/v1/dam/geo/geolean/{{assetFolder:RE}}/{{assetId:R}}
JSON: {"name": "jcr:content", "type": "mgnl:resource", "properties":  [{"name": "jcr:data", "type": "Binary", "values": ["{{&base64data:RE:allbut:s}}"]}, {"name": "size", "type": "Long", "values": [{{sizeOfFile:RE:digit}}]}, {"name": "extension", "type": "String", "values": ["{{extension:RE:alnumx}}"]}, {"name": "fileName", "type": "String", "values": ["{{nameOfFile:RE:allbut:s}}"]}, {"name":"jcr:mimeType", "type": "String", "values": ["{{typeOfMime:RE:alnumx}}"]} ]}
Method: PUT
authHeader: 'header:Authorization: Basic ', TO_BASE64('username:password')

Update asset node

API Link: https://cmsauth.uzh.ch/.rest/nodes/v1/dam/geo/geolean/{{assetFolder:RE}}/{{assetId:R}}
JSON: {"properties": [{"name": "type", "type": "String", "values": ["{{extension:RE:alnumx}}"]}, {"name": "title", "type": "String", "values": ["{{nameOfFile:RE:allbut:s}}"]} ]}
Method: POST
authHeader: 'header:Authorization: Basic ', TO_BASE64('username:password')

Update asset content

API Link: https://cmsauth.uzh.ch/.rest/nodes/v1/dam/geo/geolean/{{assetFolder:RE}}/{{assetId:R}}/jcr:content
JSON: {"properties":  [{"name": "jcr:data", "type": "Binary", "values": ["{{&base64data:RE:allbut:s}}"]}, {"name": "size", "type": "Long", "values": [{{sizeOfFile:RE:digit}}]}, {"name": "extension", "type": "String", "values": ["{{extension:RE:alnumx}}"]}, {"name": "fileName", "type": "String", "values": ["{{nameOfFile:RE:allbut:s}}"]}, {"name": "jcr:mimeType", "type": "String", "values": ["{{typeOfMime:RE:alnumx}}"]} ]}
Method: POST
authHeader: 'header:Authorization: Basic ', TO_BASE64('username:password')

Get asset identifier:

API Link: https://cmsauth.uzh.ch/.rest/nodes/v1/dam/geo/geolean/{{assetFolder:RE}}/{{assetId:R}}
JSON: keins
Method: GET
authHeader:  'header:Authorization: Basic ', TO_BASE64('username:password')

Publish all assets

API Link: https://cmsauth.uzh.ch/.rest/commands/v2/default/activate
JSON: {"repository": "dam", "path": "/geo/geolean", "recursive": "true", "modifiedOnly": "true"}
Method: POST
authHeader:  'header:Authorization: Basic ', TO_BASE64('username:password')
timeout: 300

Updated by Enis Nuredini about 1 month ago · 1 revisions