Magnolia interface » History » Revision 2
Revision 1 (Enis Nuredini, 14.06.2024 16:07) → Revision 2/6 (Enis Nuredini, 14.06.2024 16:08)
h1. Magnolia interface # Zur Authentifizierung wird ein folgender Header benutzt: <pre> 'header:Authorization: Basic ', TO_BASE64('username:password') </pre> Der dafür benötigte User wird in Magnolia erstellt (Schreibrechte) # Danach bauen wir das ganze HTML zusammen welches wir exportieren möchten. # 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. h3. Neue Page erstellen lassen <pre> 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') </pre> h3. Create content area <pre> 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') </pre> h3. Create content element <pre> 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') </pre> h3. Update existing content <pre> 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') </pre> h3. Publish new content <pre> 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') </pre> h1. Export assets (pdf, pictures) h3. Create asset node <pre> 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') </pre> h3. Create asset content <pre> 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') </pre> h3. Update asset node <pre> 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') </pre> h3. Update asset content <pre> 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') </pre> Get asset identifier: <pre> 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') </pre> h3. Publish all assets <pre> 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 </pre>