How to use REST with libraries | HCL Digital Experience

You can use the Web Content Manager REST service to create, read, update, query locale information, and delete libraries.

Create a new library

A library can be created by sending a POST request to the following URI:
/Library
For example:
HTTP/1.1 POST /wps/mycontenthandler/wcmrest/Library
Content-Type: application/atom+xml

<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:wcm="http://www.ibm.com/xmlns/wcm/8.0">
    <wcm:name>My Library</wcm:name>
    <content type="application/vnd.ibm.wcm+xml">
        <wcm:library xmlns="http://www.ibm.com/xmlns/wcm/8.0">
            <allowDeletion>false</allowDeletion>
            <enabled>true</enabled>
            <language>en</language>
            <includeDefaultItems>true</includeDefaultItems>
        </wcm:library>
    </content>
</entry>

HTTP 201 Created

Update an existing library

An existing library can be updated by sending a PUT request to the following URI:
/Library/library-id
For example:
HTTP/1.1 PUT /wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c
Content-Type: application/atom+xml
Accept: application/atom+xml

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:wcm="http://www.ibm.com/xmlns/wcm/8.0">
    <id>wcmrest:ff207ba6-ac9a-4b38-b831-99528ff5067c</id>
    <title>My New Library Title</title>
    <summary/>
    <wcm:name>my library</wcm:name>
    <wcm:type>Library</wcm:type>
    <updated>2014-10-09T03:18:02.303Z</updated>
    <link rel="self" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c" xml:lang="en" label="Read"/>
    <link rel="edit" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c" xml:lang="en" label="Edit"/>
    <link rel="delete" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c" xml:lang="en" label="Delete"/>
    <link rel="access-control" href="/wps/mycontenthandler/ac/access:oid:Z6QReDe6JP43OS62BOCJM4C3BE2MMG62RCGJM8COPC2JM47P9D43SOC6BD03RS633" xml:lang="en" label="Access Control"/>
    <link rel="edit-media" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c" type="application/vnd.ibm.wcm+xml" xml:lang="en" label="Edit Media"/>
    <link rel="preset-folders" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c/preset-folders"/>
    <content type="application/vnd.ibm.wcm+xml">
        <wcm:library xmlns="http://www.ibm.com/xmlns/wcm/8.0">
            <allowDeletion>true</allowDeletion>
            <enabled>true</enabled>
            <language>en</language>
        </wcm:library>
    </content>
</entry>

HTTP 200 OK

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:wcm="http://www.ibm.com/xmlns/wcm/8.0">
    <id>wcmrest:ff207ba6-ac9a-4b38-b831-99528ff5067c</id>
    <title>My New Library Title</title>
    <summary/>
    <wcm:name>my library</wcm:name>
    <wcm:type>Library</wcm:type>
    <updated>2014-10-09T03:18:02.303Z</updated>
    <link rel="self" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c" xml:lang="en" label="Read"/>
    <link rel="edit" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c" xml:lang="en" label="Edit"/>
    <link rel="delete" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c" xml:lang="en" label="Delete"/>
    <link rel="access-control" href="/wps/mycontenthandler/ac/access:oid:Z6QReDe6JP43OS62BOCJM4C3BE2MMG62RCGJM8COPC2JM47P9D43SOC6BD03RS633" xml:lang="en" label="Access Control"/>
    <link rel="edit-media" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c" type="application/vnd.ibm.wcm+xml" xml:lang="en" label="Edit Media"/>
    <link rel="preset-folders" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c/preset-folders"/>
    <content type="application/vnd.ibm.wcm+xml">
        <wcm:library xmlns="http://www.ibm.com/xmlns/wcm/8.0">
            <allowDeletion>true</allowDeletion>
            <enabled>true</enabled>
            <language>en</language>
        </wcm:library>
    </content>
</entry>

Read an existing library

An existing library can be read by sending a GET request to the following URI:
/Library/library-id
For example:
HTTP/1.1 GET /wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c
Accept: application/atom+xml

HTTP 200 OK

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:wcm="http://www.ibm.com/xmlns/wcm/8.0">
    <id>wcmrest:ff207ba6-ac9a-4b38-b831-99528ff5067c</id>
    <title>My Library</title>
    <summary/>
    <wcm:name>my library</wcm:name>
    <wcm:type>Library</wcm:type>
    <updated>2014-10-09T03:18:02.303Z</updated>
    <link rel="self" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c" xml:lang="en" label="Read"/>
    <link rel="edit" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c" xml:lang="en" label="Edit"/>
    <link rel="delete" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c" xml:lang="en" label="Delete"/>
    <link rel="access-control" href="/wps/mycontenthandler/ac/access:oid:Z6QReDe6JP43OS62BOCJM4C3BE2MMG62RCGJM8COPC2JM47P9D43SOC6BD03RS633" xml:lang="en" label="Access Control"/>
    <link rel="edit-media" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c" type="application/vnd.ibm.wcm+xml" xml:lang="en" label="Edit Media"/>
    <link rel="preset-folders" href="/wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c/preset-folders"/>
    <content type="application/vnd.ibm.wcm+xml">
        <wcm:library xmlns="http://www.ibm.com/xmlns/wcm/8.0">
            <allowDeletion>false</allowDeletion>
            <enabled>true</enabled>
            <language>en</language>
        </wcm:library>
    </content>
</entry>

With HCL DX CF19 and higher releases, locale information can be obtained from Web Content Manager libraries.

When the WCM REST API is used to search for WCM libraries, the language of the libraries is provided in the displayTitle and summary elements, as shown in the following example:
...
<entry>
    <id>wcmrest:94e69f30-15d7-464a-ab1b-76598eb0758b</id>
    <title>Web Resource v70</title>
    <wcm:displayTitle xml:lang="en">Web Resources v70</wcm:displayTitle>
    <summary/>
    <wcm:description xml:lang="en"></wcm:description>
    <wcm:type>Library</wcm:type>
    <updated>2020-09-23T11:07:01.1835Z</updated>
    <link rel="edit" href="/wps/mycontenthandler/!ut/p/digest!
jLKSL8JD0hftsmhoz53-EA/wcmrest/Library/94e69fe0-15d7-464a-
ab1b-76598eb0758b" xml:lang="en" label="Edit"/>
    <link rel="alternate" href="/wps/mycontenthandler/!ut/p/digest!
jLKSL8JD0hftsmhoz53-EA/wcmrest/Library/94e69fe0-15d7-464a-
ab1b-76598eb0758b" xml:lang="en" label="Read"/>
    <link rel="library" href="/wps/mycontenthandler/!ut/p/digest!
jLKSL8JD0hftsmhoz53-EA/wcmrest/Library/94e69fe0-15d7-464a-
ab1b-76598eb0758b" xml:lang="en" label="Library"/>
</entry>
...
To read the locale of the Web Content Manager library, the read request can be set by using the Accept-Language header. If a version for that specific locale is not set, the default title/summary will be returned.

Delete a library

An existing library can be deleted by sending a DELETE request to the following URI:
/Library/library-id
For example:
HTTP/1.1 DELETE /wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c

HTTP 200 OK

Asynchronous Delete

An existing library can also be deleted asynchronously by using the following URI. The response contains a Content-Location header, containing a URI that can be used to monitor the progress of the delete operation:
/Library/library-id?synchronous=true
For example:
HTTP/1.1 DELETE /wps/mycontenthandler/wcmrest/Library/ff207ba6-ac9a-4b38-b831-99528ff5067c?synchronous=true

HTTP 202 Accepted
Content-Location: /wps/mycontenthandler/wcmrest/Library/fd18e3a0-b96b-4a66-9bcc-f3d142c7837e/wcmTask:com.ibm.workplace.wcm.services.task.DeleteTask:ced02fae-abc7-4ff4-af4d-c08804b32811/delete-status