Rest WikiPages » History » Revision 6
« Previous |
Revision 6/7
(diff)
| Next »
Jens Krämer, 2017-02-28 03:34
since 3.3 wiki_controller supports the nested uploads element which is necessary for using the XML version of the API (single root node needed)
Wiki Pages¶
- Table of contents
- Wiki Pages
Getting the pages list of a wiki¶
GET /projects/foo/wiki/index.xml
Returns the list of all pages in a project wiki.
Response:
<?xml version="1.0"?> <wiki_pages type="array"> <wiki_page> <title>UsersGuide</title> <version>2</version> <created_on>2008-03-09T12:07:08Z</created_on> <updated_on>2008-03-09T23:41:33+01:00</updated_on> </wiki_page> ... </wiki_pages>
Getting a wiki page¶
GET /projects/foo/wiki/UsersGuide.xml
Returns the details of a wiki page.
Includable:- attachments
Response:
<?xml version="1.0"?> <wiki_page> <title>UsersGuide</title> <parent title="Installation_Guide"/> <text>h1. Users Guide ... ...</text> <version>22</version> <author id="11" name="John Smith"/> <comments>Typo</comments> <created_on>2009-05-18T20:11:52Z</created_on> <updated_on>2012-10-02T11:38:18Z</updated_on> </wiki_page>
Getting an old version of a wiki page¶
GET /projects/foo/wiki/UsersGuide/23.xml
Returns the details of an old version of a wiki page.
Includable:- attachments
Response:
Same as above.
Creating or updating a wiki page¶
PUT /projects/foo/wiki/UsersGuide.xml <?xml version="1.0"?> <wiki_page> <text>Example</text> <comments>Typo</comments> </wiki_page>
Creates or updates a wiki page.
When updating an existing page, you can include a version
attribute to make sure that the page is a specific version when you try to update it (eg. you don't want to overwrite an update that would have been done after you retrieved the page). Example:
PUT /projects/foo/wiki/UsersGuide.xml <?xml version="1.0"?> <wiki_page> <text>Example</text> <comments>Typo</comments> <version>18</version> </wiki_page>
This would update the page if its current version is 18, otherwise a 409 Conflict
error is returned.
Attaching files¶
JSON example
First, upload your file(s):
POST /uploads.json Content-Type: application/octet-stream ... (request body is the file content) # 201 response {"upload":{"token":"7167.ed1ccdb093229ca1bd0b043618d88743"}}
If you want to attach more than one file, upload them one by one, and save all the tokens.
Then create/update the wiki page using the attachments token (with one or more files provided as an array of objects):
PUT /projects/project_name/wiki/wiki_name.json { "wiki_page": { "text": "This is a wiki page with images (like this: !img.png!), and other files.", "uploads": [ {"token": "7167.ed1ccdb093229ca1bd0b043618d88743", "filename": "img.bmp", "content-type": "image/png"}, {"token": "7168.d595398bbb104ed3bba0eed666785cc6", "filename": "document.pdf", "content-type": "application/pdf"} ] } }
Note:
When creating or updating wiki pages, the text field must be provided, otherwise you will get a 422 Unprocessable Entity
error saying: "Text field can't be blank".
If you do not wish to change the text, you can keep it by first getting the wiki page as described above, and provide the current text in the update.
200 OK
: page was updated201 Created
: page was created409 Conflict
: occurs when trying to update a stale page (see above)422 Unprocessable Entity
: page was not saved due to validation failures (response body contains the error messages)
Deleting a wiki page¶
DELETE /projects/foo/wiki/UsersGuide.xml
Deletes a wiki page, its attachments and its history. If the deleted page is a parent page, its child pages are not deleted but changed as root pages.
Response:200 OK
: page was deleted
Updated by Jens Krämer almost 8 years ago · 6 revisions