Skip to main content

 

MindTouch Success Center

site/export (POST) (TCS)

Overview

Generates export information

  • REST Method: POST
  • Method Access: public

Query Parameters

Name Type Description
relto int? Page used for path normalization (default: home page)
reltopath string? Page used for path normalization. Ignored if relto parameter is defined.
format string? Format used for exporting page (one of 'xhtml', 'dekicode'; default: xhtml)

Return Codes

Name Value Description
OK 200 The request completed successfully
Bad Request 400 Invalid input parameter or request body

Message Format

Input:

<export> 
  <page path="{text}" recursive="{bool}" exclude="none|files,props,tags,talk|all" />
  <page id="{int}" recursive="{bool}" exclude="none|files,props,tags,talk|all" />  
    ...
  <file id="{int}" exclude="none|props|all" />
</export>

Output:

<export>
  <requests>
    <request method="GET" href="http://host/@api/deki/pages/{id}/contents?reltopath={path}&format=xhtml" dataid="{text1}" >
      <header name="{text}" value="{text}" />
      ...
    </request>
    <request method="GET"  href="http://host/@api/deki/pages/{id}/tags" dataid="{text2}">
      <header name="{text}" value="{text}" />
      ...
    </request>
    <request method="GET"  href="http://host/@api/deki/pages/{id}/properties/{name}" dataid="{text3}">
      <header name="{text}" value="{text}" />
      ...
    </request>
    <request method="GET"  href="http://host/@api/deki/files/{id}" dataid="{text4}">
      <header name="{text}" value="{text}" />
      ...
    </request>
    <request method="GET"  href="http://host/@api/deki/files/{id}/properties" dataid="{text5}">
      <header name="{text}" value="{text}" />
      ...
    </request>
    ...
    <warning reason="{text}" status="{httpstatus}">
      <page path="{text}" recursive="{bool}" exclude="none|files,props|all" />
    </warning>
    ...
  </requests>
  <manifest version="{version}">
    <page dataid="{text1}">
      <title>{text}</title>
      <path>{page path using // to indicate relativity to base export page}</path>
      <language>{text}</language>
      <contents type="{mimetype}"/>
    </page>
    <tags dataid="{text2}">
      <path>{page path using // to indicate relativity to base export page}</path>    
    </tags>
    <property dataid="{text3}">
      <name>{text}</name>
      <path>{page path using // to indicate relativity to base export page}</path>
      <contents type="{mimetype}"/>
    </property> 
    <file dataid="{text4}">
     <filename>{text}</filename>
     <path>{page path using // to indicate relativity to base export page}</path>
     <description>{text}</description>
     <contents type="{mimetype}" />
    </file>
    <property dataid="{text5}">
     <name>{text}</name>
     <filename>{text}</filename>
     <path>{page path using // to indicate relativity to base export page}</path>
     <contents type="{mimetype}"/></property>...  
  </manifest>
</export>

Implementation Notes

The requests section of the returned document describes the HTTP requests to make to perform the actual export.

Curl Code Sample: Export Page/Files

The following command requests export instructions for pages/files listed in "export.xml".

Sample Code

curl -u admin:password -H "Content-Type: application/xml" -d @export.xml -i http://mindtouch.address/@api/deki/site/export

Implementation notes 

curl flags

-u
Basic HTTP authentication. Sends a username and password to server so it can verify whether a user is of privilege to perform specific operation.
-d @file
Specifies a POST request and file to send.
-H
Replaces or appends an HTTP header. The "Content-Type" header specifies the MIME type of the value attached to the property. In this case, use application/xml since the document being passed is of type XML.
-i
Includes the HTTP response header in the output. Useful for debugging.

Example

This example demonstrates how to export the instructions for several pages and a file.

export.xml

Content-Type: application/xml

<export>
	<page path="Test" recursive="true"/>
	<page id="567"/>
	<page path="FUBAR"/>

	<file id="71"/>
</export>

Sample Code

curl -u admin:password -H "Content-Type: application/xml" -d @export.xml -i http://192.168.59.128/@api/deki/site/export

HTTP Response Headers

HTTP/1.1 200 OK
Date: Tue, 26 Jan 2010 00:17:21 GMT
Server: Dream-HTTPAPI/2.0.0.17629 Microsoft-HTTPAPI/2.0
Content-Length: 2162
Content-Type: application/xml; charset=utf-8
X-Data-Stats: request-time-ms=50; mysql-queries=50; mysql-time-ms=41;
X-Deki-Site: id="default"
Via: 1.1 dekiwiki

HTTP Response Body

Content-Type: application/xml

<export>
  <requests>
    <request method="GET" href="http://192.168.59.128/@api/deki/pages/562/contents?redirects=0&mode=edit&reltopath=&format=xhtml" dataid="0"/>
    <request method="GET" href="http://192.168.59.128/@api/deki/pages/562/tags?redirects=0" dataid="1"/>
    <request method="GET" href="http://192.168.59.128/@api/deki/pages/563/contents?redirects=0&mode=edit&reltopath=&format=xhtml" dataid="2"/>
    <request method="GET" href="http://192.168.59.128/@api/deki/pages/563/tags?redirects=0" dataid="3"/>
    <request method="GET" href="http://192.168.59.128/@api/deki/pages/564/contents?redirects=0&mode=edit&reltopath=&format=xhtml" dataid="4"/>
    <request method="GET" href="http://192.168.59.128/@api/deki/pages/564/tags?redirects=0" dataid="5"/>
    <request method="GET" href="http://192.168.59.128/@api/deki/pages/567/contents?redirects=0&mode=edit&reltopath=&format=xhtml" dataid="6"/>
    <request method="GET" href="http://192.168.59.128/@api/deki/pages/567/tags?redirects=0" dataid="7"/>
    <request method="GET" href="http://192.168.59.128/@api/deki/files/71/=trollface.jpg" dataid="8"/>
    <request method="GET" href="http://192.168.59.128/@api/deki/files/71/properties/iscopyright" dataid="9"/>
  </requests>
  <manifest>
    <page dataid="0">
      <path>//Test</path>
      <language/>
      <contents type="application/x.deki0805+xml"/>
    </page>
    <tags dataid="1">
      <path>//Test</path>
    </tags>
    <page dataid="2">
      <path>//Test/Foo</path>
      <language/>
      <contents type="application/x.deki0805+xml"/>
    </page>
    <tags dataid="3">
      <path>//Test/Foo</path>
    </tags>
    <page dataid="4">
      <path>//Test/Foo/Pidgin</path>
      <language/>
      <contents type="application/x.deki0805+xml"/>
    </page>
    <tags dataid="5">
      <path>//Test/Foo/Pidgin</path>
    </tags>
    <page dataid="6">
      <path>//FUBAR</path>
      <language/>
      <contents type="application/x.deki0805+xml"/>
    </page>
    <tags dataid="7">
      <path>//FUBAR</path>
    </tags>
    <file dataid="8">
      <filename>trollface.jpg</filename>
      <path>//FUBAR</path>
      <contents type="image/jpg"/>
    </file>
    <property dataid="9">
      <name>iscopyright</name>
      <filename>trollface.jpg</filename>
      <path>//FUBAR</path>
      <contents type="text/plain"/>
    </property>
  </manifest>
</export>

Notes

  • Export provides the instructions and manifests to recreate a page. 

  • Was this article helpful?