pages (GET)
Overview
Builds a site map starting from 'home' page.
- REST Method: GET
- Method Access: public
Query Parameters
| Name | Type | Description | 
| startpage | bool? | For HTML sitemap, indicates if the start page should be included (default: true) | 
| format | {xml, html, google}? | Result format (default: xml) | 
| authenticate | bool? | Force authentication for request (default: false) | 
Return Codes
| Name | Value | Description | 
| OK | 200 | The request completed successfully | 
| Bad Request | 400 | Invalid input parameter or request body | 
| Forbidden | 403 | Browse access to the page is required | 
| Not Found | 404 | Requested page could not be found | 
Message Format
Output (XML):
<pages>
    <page id="{int}" href="{uri}">
        <title>{text}</title> 
        <path>{text}</path> 
        <subpages>
            <page>...</page>
            ...
        </subpages>
    </page>
</pages>
Output (HTML):
<ul>
    <li>
        <a rel="internal" href="{uri}" title="{text}" pageid="{int}" class="{text}">{text}</a>
        <ul>
            <li>...</li>
            ...
        </ul>
    </li>
</ul>
Output (sitemap): Refer to http://www.google.com/schemas/sitemap/0.84
Implementation Notes
Redirect and archived pages are not included in the sitemap.
Use GET:pages/{pageid}/tree to retrieve the sitemap from a specified page.
C# Code Sample: Retrieve Sitemap
The following code example retrieves the sitemap in XML format:
Sample Code
Plug p = Plug.New("http://deki-hayes/@api/deki");
p.At("users", "authenticate").WithCredentials("admin", "password").Get();
p.At("pages").With("format", "xml").Get();
Sample response indicating that the home page has one sub-page called "Page Title". This sub-page has one sub-page called "Subpage 1":
Sample Response from executing Code
<pages>
    <page id="29" href="http://deki-hayes/@api/deki/pages/29">
        <title>DekiWiki (Hayes)</title> 
        <path /> 
        <subpages>
            <page id="31" href="http://deki-hayes/@api/deki/pages/31">
                <title>Page Title</title> 
                <path>Page_Title</path> 
                <subpages>
                    <page id="32" href="http://deki-hayes/@api/deki/pages/32">
                        <title>Subpage 1</title> 
                        <path>Page_Title/Subpage_1</path> 
                        <subpages /> 
                    </page>
                </subpages>
            </page>
        </subpages>
    </page>
</pages>
Implementation notes
Add notes about requirements or config values
Curl Code Sample: Retrieve Sitemap
The following command retrieves a hierarchical representation of the site's pages:
Sample Code
curl -u username:password -i http://mindtouch.address/@api/deki/pages
Sample Response from executing Code
<pages>
  <page id="21" href="http://192.168.59.128/@api/deki/pages/21?redirects=0"> <!-- homepage -->
    <uri.ui>http://192.168.59.128/</uri.ui>
    <title>Best Wiki Ever</title>
    <path/>
    <namespace>main</namespace>
    <subpages>
      <page id="565" href="http://192.168.59.128/@api/deki/pages/565?redirects=0">
        <uri.ui>http://192.168.59.128/Bar</uri.ui>
        <title>Bar</title>
        <path>Bar</path>
        <namespace>main</namespace>
        <subpages/>
      </page>
      <page id="567" href="http://192.168.59.128/@api/deki/pages/567?redirects=0">
      ...
      </page>
    ...
    </subpages>
    ...
  </page>
</pages>
Implementation notes
curl flags
- -u
- Provides external user authentication. Note that if anonymous access is available and authentication is not forced, this flag may be omitted.
- -i
- Outputs the HTTP response headers. Useful for debugging.

