Defined query Service

Defined queries are stored queries that can be run and updated as required.

The defined queries feature allows administrators to define a query in XML format through the REST service, and bind that query to a URI. Once this query has been defined, a user can execute it and obtain the results by issuing a GET request to the bound URI.

Create

A defined query is created by sending a POST request to the following URI:
/DefinedQueryComponent/
For example:
HTTP/1.1 POST 
http://host:port/wps/mycontenthandler/wcmrest/DefinedQueryComponent
Content-Type: application/atom+xml
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:wcm="wcm/namespace">
    <atom:title>defined query title-1712115665</atom:title>
    <wcm:name>query-name</wcm:name>
    <wcm:description>defined query description</wcm:description>
</atom:entry>

201 Created
The URI that is bound to this query has the following format:
/definedquery/component-name
For example, the URI used to obtain the results of the previous query example is:
/definedquery/query-name
The response to a create operation will contain a link relation "query-results" specifying this URI.
<atom:link atom:rel="query-results" 
atom:href="/wps/mycontenthandler/!ut/p/wcmrest/definedquery/query-name"/>
Note: The only way to update this URI is by modifying the name of the component.

Read

To retrieve a list of defined queries, you send a GET request to the following URI:
/DefinedQueryComponent/

For example:

HTTP/1.1 GET
http://host:port/wps/mycontenthandler/wcmrest/DefinedQueryComponent
Accept-Type: application/atom+xml

<atom:feed xmlns:atom="http://www.w3.org/2005/Atom" xmlns:wcm="wcm/namespace">
    <atom:title>Custom Queries</atom:title>
    <atom:updated>2011-07-04T01:19:27.126Z</atom:updated>
    <atom:entry>
        <atom:id>wcmrest:a5d4f72f-a7b7-4576-a7d3-5a4e15c66f01</atom:id>
        <wcm:name>query-one-name</wcm:name>
        <atom:title>Query 1</atom:title>
        <atom:updated>2011-07-04T01:19:27.159Z</atom:updated>
        <atom:link atom:rel="query-results" atom:href="/wps/mycontenthandler/!ut/p/wcmrest/definedquery/query-one-name
        <atom:link atom:rel="edit-media" atom:type="application/vnd.ibm.wcm+xml" atom:href="/wps/mycontenthandler/!ut/p/wcmrest/DefinedQueryComponent/a5d4f72f-a7b7-4576-a7d3-5a4e15c66f01"/>
        <atom:link atom:rel="edit" atom:href="/wps/mycontenthandler/!ut/p/wcmrest/DefinedQueryComponent/a5d4f72f-a7b7-4576-a7d3-5a4e15c66f01"/>
    </atom:entry>
    <atom:entry>
        <atom:id>wcmrest:6276ff18-f370-45eb-89c3-053d335aba88</atom:id>
        <atom:title>defined query title-1280236937</atom:title>
        <wcm:name>query-two-name</wcm:name>
        <atom:updated>2011-07-04T01:19:27.167Z</atom:updated>
        <atom:link atom:rel="query-results" atom:href="/wps/mycontenthandler/!ut/p/wcmrest/definedquery/query-two-name"/>
        <atom:link atom:rel="edit-media" atom:type="application/vnd.ibm.wcm+xml" atom:href="/wps/mycontenthandler/!ut/p/wcmrest/DefinedQueryComponent/6276ff18-f370-45eb-89c3-053d335aba88"/>
        <atom:link atom:rel="edit" atom:href="/wps/mycontenthandler/!ut/p/wcmrest/DefinedQueryComponent/6276ff18-f370-45eb-89c3-053d335aba88"/>
    </atom:entry>
</atom:feed>
To retrieve the XML of a specific defined query, you send a GET request to the following URI:
/DefinedQueryComponent/item-uuid
For example:
HTTP/1.1 GET
http://host:port/wps/mycontenthandler/wcmrest/DefinedQueryComponent/6276ff18-f370-45eb-89c3-053d335aba88
Accept-Type: application/atom+xml

200 OK

<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:wcm="wcm/namespace">
    <atom:id>wcmrest:9e3bd0d7-25ca-4029-84c1-36b526d591f3</atom:id>
    <wcm:type>DefinedQueryComponent</wcm:type>
    <atom:title>defined query title-1460391124</atom:title>
    <wcm:name>query-name</wcm:name>
    <atom:updated>2011-07-04T01:34:01.051Z</atom:updated>
    <wcm:description>defined query description</wcm:description>
    <atom:link atom:rel="edit" atom:href="/wps/mycontenthandler/!ut/p/wcmrest/DefinedQueryComponent/9e3bd0d7-25ca-4029-84c1-36b526d591f3"/>
    <atom:link atom:rel="edit-media" atom:type="application/vnd.ibm.wcm+xml" atom:href="/wps/mycontenthandler/!ut/p/wcmrest/DefinedQueryComponent/9e3bd0d7-25ca-4029-84c1-36b526d591f3"/>
    <atom:link atom:rel="query-results" atom:href="/wps/mycontenthandler/!ut/p/wcmrest/definedquery/some-query-name2100290405"/>
</atom:entry>
To retrieve the raw data of a specific defined query, send a GET request to the edit-media link relation:
/DefinedQueryComponent/item-id
For example:
HTTP/1.1 GET
http://host:port/wps/mycontenthandler/wcmrest/DefinedQueryComponent/items-id
Accept-Type: application/vnd.ibm.wcm+xml

200 OK

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definedQuery restrictParameters="true" page="1" pageSize="10" depth="DESCENDANTS">
    <select>
        <typeEquals>
            <type>Content</type>
        </typeEquals>
        <nameLike>
            <name>article%</name>
        </nameLike>
        <titleLike>
            <title>product%</title>
        </titleLike>
    </select>
    <allowParameters>
        <parameter>lastmodifiedbefore</parameter>
        <parameter>workflowid</parameter>
        <parameter>createdbefore</parameter>
        <parameter>authoringtemplateid</parameter>
    </allowParameters>
</definedQuery>

Update

To update the meta-data of a query, issue a PUT request containing the new specification to the following URI:
/DefinedQueryComponent/item-uuid
For example:
HTTP/1.1 PUT
http://host:port/wps/mycontenthandler/wcmrest/DefinedQueryComponent/item-uuid
Content-Type: application/atom+xml
(… atom data … )

200 OK
To update the raw data of a query that specifies the parameters used to conduct the query, issue a PUT request containing the new specification to the following URI:
/DefinedQueryComponent/item-uuid
For example:
HTTP/1.1 PUT
http://host:port/wps/mycontenthandler/wcmrest/DefinedQueryComponent/6276ff18-f370-45eb-89c3-053d335aba88
Content-Type: application/vnd.ibm.wcm+xml
(… xml data … )

200 OK

Delete

To delete a defined query, issue a DELETE request to the following URI:
/DefinedQueryComponent/item-id
For example:
HTTP/1.1 DELETE
http://host:port/wps/mycontenthandler/wcmrest/definedquery/6276ff18-f370-45eb-89c3-053d335aba88

200 OK

White List

The white list is a list of additional query parameters that can be used to refine the scope of the defined query. These are the only parameters that will have any effect when appended to the bound URI.

For example, if the white list includes a parameter of name, the following request will return the results of the defined query which have the name "hello world":
HTTP/1.1 GET
http://host:port/wps/mycontenthandler/wcmrest/query-name?name=hello+world

200 OK