IBM Connections: Using Connections API on Wiki Pages

Using Atom, you can can create, retrieve, update, or delete wiki pages. I will show some examples, if you want more details see documentation on Working with wiki pages IBM Connections 5.5 API.

After read this article see IBM Connections: Creating Wiki pages with advanced templates

= Working with Wiki Pages =

Getting wiki-label
First of all you must create a Wiki on Connections, open this wiki and get the wiki-label. It must be as follow:

https:// {hostname}/wikis/home?lang=en-us#!/wiki/{wiki-id_or_label}

Examples;
 * For Wikis inside a community -> https:// {hostname}/wikis/home?lang=en-us#!/wiki/W0123c2ccb6b6_45aa_bc4e_865da123063a
 * For Wikis outside a community -> https:// {hostname}/wikis/home?lang=en-us#!/wiki/User Guide

Create a Wiki Page
Let's create our data file.

1) Create the file WikiNewPage01.xml, with bellow content:

 My First Wiki  <![CDATA[ Hello World! ]]>   

Save.

2) Now run curl comand to create

curl -X POST "https://{hostname}/wikis/basic/api/wiki/{wiki-id_or_label}/feed"   \ -H "Content-Type: application/atom+xml; charset=utf-8" --data "@WikiNewPage01.xml" -u {username}:{password} -v -k -L

If no error, refresh you Wiki to see the new page created (on left side).

Create a Wiki Page as Child
You will need the {parentUuid} to create a child page. Bellow you have 2 ways to get parentUuid:


 * On response from first curl command, you can get the parentUuid, like
 * https:// /wikis/basic/api/wiki/{wiki-id_or_label}/page/92cc601d-2ba2-48d2-bbfe-e08ae9316d6d/entry


 * Open the parent page, click on Page Actions and choose Create Child. The new url
 * -> https:// /wikis/home?lang=en-us#!/wiki/{wiki-id_or_label}/pages/create?parentId=92cc601d-2ba2-48d2-bbfe-e08ae9316d6d

Let's create our data file.

1) Create the file WikiNewPageChild01.xml, with bellow content:

 My First Child Wiki  <![CDATA[ Hello World! Child ]]>     {parentUuid} 

Replace the parentUuid and Save.

2) Now run curl command to create, with a new X-Update-Nonce header:

curl -X POST "https://{hostname}/wikis/basic/api/wiki/{wiki-id_or_label}/feed"   \ -H "X-Update-Nonce: <NONCE>" -H "Content-Type: application/atom+xml; charset=utf-8" --data "@WikiNewPageChild01.xml" \ -u {username}:{password} -v -k -L

If no error, refresh you Wiki to see the new page created (on left side).

Update a Wiki Page
1) Create the file WikiNewPageChild02.xml, with bellow content:

<entry xmlns="http://www.w3.org/2005/Atom"> My Second Child Wiki <content type="text/html"> <![CDATA[<?xml version="1.0" encoding="UTF-8"?> Hello World! Version 1 ]]> <category term="wikipagetag1" /> <category term="wikipagetag2" /> <category scheme="tag:ibm.com,2006:td/type" term="page" label="page" />  {parentUuid} </parentUuid>

Replace the parentUuid and Save.

2) Now run curl command to create, with a new X-Update-Nonce header:

curl -X POST "https://{hostname}/wikis/basic/api/wiki/{wiki-id_or_label}/feed"   \ -H "X-Update-Nonce: <NONCE>" -H "Content-Type: application/atom+xml; charset=utf-8" --data "@WikiNewPageChild02.xml" \ -u {username}:{password} -v -k -L

If no error, refresh you Wiki to see the new page created (on left side).

3) Change file WikiNewPageChild02.xml, from
 * Hello World! Version 1

to
 * Hello World! Version 2 update after version 1

Save file

4) Get {page_id_or_label}

You can get page_id from last curl command or from open wiki page and get link on "Feed for this page", like


 * "https://{hostname}/wikis/basic/api/wiki/{wiki-id_or_label}/page/62e04284-194e-4564-bb68-6f55486d70e6/feed?category=version

5) Run curl again

curl -X PUT "https://{hostname}/wikis/basic/api/wiki/{wiki-id_or_label}/page/{page_id_or_label}/entry?createVersion=true"   \ -H "Content-Type: application/atom+xml; charset=utf-8" --data "@WikiNewPageChild02.xml" \ -u {username}:{password} -v -k -L

we use createVersion=true, to create a new version of wiki page, if you don't want a new version change createVersion=false.

Retrieving a Wiki Page
Run curl again

curl -X GET "https://{hostname}/wikis/basic/api/wiki/{wiki-id_or_label}/page/{page_id_or_label}/entry"   \ -H "Content-Type: application/atom+xml; charset=utf-8" -o output.xml \ -u {username}:{password} -v -k -L

To retrieve wiki page using anonymous access, use url /wikis/basic/anonymous/api/wiki/{wiki-label}/page/{page-label}/entry

Delete a Wiki Page
Run curl

curl -X DELETE "https://{hostname}/wikis/basic/api/wiki/{wiki-id_or_label}/page/{page_id_or_label}/entry"   \ -H "Content-Type: application/atom+xml; charset=utf-8" \ -u {username}:{password} -v -k -L

= Tips =

Issues with content element
To avoid problems with html content element add CDATA tags

<![CDATA[<?xml version="1.0" encoding="UTF-8"?> {PUT YOUR CONTENT HERE} ]]>

fixes an issue to display content.


 * Use   or    to restrict content.

Tags
Use

<category term="wikipagetag1" />

to tag your wiki page.

= Ver também =
 * IBM Connections: Creating Wiki pages with advanced templates


 * Mais Artigos sobre IBM Connections