Changes for page REST API

Last modified by Thomas Mortagne on 2024/03/12

<
From version < 8.4 >
edited by Silvia Macovei
on 2009/09/25
To version < 9.5 >
edited by Oana Florea
on 2009/10/06
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.SilviaRusu
1 +XWiki.OanaTabaranu
Syntax
... ... @@ -1,1 +1,1 @@
1 -XWiki 1.0
1 +XWiki 2.0
Content
... ... @@ -1,80 +1,74 @@
1 -1 The XWiki RESTful API
1 += The XWiki RESTful API =
2 2  
3 -XWiki provides fine-grain access to virtually every element through an API that is based on HTTP semantics, i.e. a RESTful API.
4 -In this page you will find all the details to take advantage of this API and the instructions to use it at its full potential.
3 +XWiki provides fine-grain access to virtually every element through an API that is based on HTTP semantics, i.e. a RESTful API. In this page you will find all the details to take advantage of this API and the instructions to use it at its full potential.
5 5  
6 -1.1 Dataset
5 +== Dataset ==
7 7  
8 8  This section contains a brief and high-level description of the XWiki data set that should serve as a basis for presenting resources and their associated operations.
9 9  
10 -XWiki has *pages* organized in *spaces*. Each *page* is available in multiple *versions* (its *history*) and *translations*. Translated pages have their own *versions* and *history* which are independent. Each page might have *attachments*. Each attachment has its own *history*. Attachments are shared among all the different translations of a page (i.e., the same set of attachment is the same regardless of the page language). Pages can have one or more *objects*. Objects are instances of a *class* that contains a set of *properties*. Some object might be directly exposed as first class entities, such as *comments* and *tags*. Objects, as attachments, are shared among all page translations.
9 +XWiki has **pages** organized in **spaces**. Each **page** is available in multiple **versions** (its **history**) and **translations**. Translated pages have their own **versions** and **history** which are independent. Each page might have **attachments**. Each attachment has its own **history**. Attachments are shared among all the different translations of a page (i.e., the same set of attachment is the same regardless of the page language). Pages can have one or more **objects**. Objects are instances of a **class** that contains a set of **properties**. Some object might be directly exposed as first class entities, such as **comments** and **tags**. Objects, as attachments, are shared among all page translations.
11 11  
12 -1.1 Understanding resources and representations
11 +== Understanding resources and representations ==
13 13  
14 -"An important concept in REST is the existence of resources (sources of specific information), each of which is referenced with a global identifier (e.g., a URI in HTTP). In order to manipulate these resources, components of the network (user agents and origin servers) communicate via a standardized interface (e.g., HTTP) and exchange representations of these resources (the actual documents conveying the information)." ([Wikipedia > http://en.wikipedia.org/wiki/Representational_State_Transfer#REST.27s_central_principle:_resources])
13 +"An important concept in REST is the existence of resources (sources of specific information), each of which is referenced with a global identifier (e.g., a URI in HTTP). In order to manipulate these resources, components of the network (user agents and origin servers) communicate via a standardized interface (e.g., HTTP) and exchange representations of these resources (the actual documents conveying the information)." ([[Wikipedia>>http://en.wikipedia.org/wiki/Representational_State_Transfer#REST.27s_central_principle:_resources]])
15 15  
16 -Resources in XWiki are pages, attachments, objects, properties, spaces, and all the ~~things~~ we described in the previous section. XWiki has a default way of conveying the information about these resources, i.e., by providing well defined XML representations that contain all the information associated to the resource in an XML format.
17 -This format is described using an XML Schema Definition file that can be found here: [http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-rest/src/main/resources/xwiki.rest.model.xsd]
15 +Resources in XWiki are pages, attachments, objects, properties, spaces, and all the //things// we described in the previous section. XWiki has a default way of conveying the information about these resources, i.e., by providing well defined XML representations that contain all the information associated to the resource in an XML format. This format is described using an XML Schema Definition file that can be found here: [[http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-rest/src/main/resources/xwiki.rest.model.xsd]]
18 18  
19 19  Of course the same resource can be represented in many different ways. When it is the case, this will be documented.
20 20  
21 -Another important aspect of representations is that they contain useful information for linking related resources. This is a realization of the ~~Hypermedia As The Engine Of The Application State (HATEOAS)~~ principle. In XML representations this information is conveyed through the <tt>&lt;link&gt;</tt> tag. This tag has two important parameters: *rel* and *href*. *rel* specifies the "semantics" of the link, while *href* is the URI of the linked resource.
19 +Another important aspect of representations is that they contain useful information for linking related resources. This is a realization of the //Hypermedia As The Engine Of The Application State (HATEOAS)// principle. In XML representations this information is conveyed through the <tt>&lt;link&gt;</tt> tag. This tag has two important parameters: **rel** and **href**. **rel** specifies the "semantics" of the link, while **href** is the URI of the linked resource.
22 22  
23 23  For example, in the representation of a page, we can have links to the comments, tags, attachments which are independent resources associated to the current page. These links are provided in the XML representation of a page and allow a client to navigate to related resources... Like we do every day when we click on a link in a web page.
24 24  
25 -{image:representation|430}
23 +[[image:representation||height="430"]]
26 26  
27 -1.1.1 Relations
25 +=== Relations ===
28 28  
29 29  The available relations that you might find in the XML resource representations are the following:
30 30  
31 -{table}
32 -Rel | Semantics
33 -http://www.xwiki.org/rel/wikis | The representation containing the list of virtual wikis.
34 -http://www.xwiki.org/rel/spaces | The representation containing the list of spaces in a wiki.
35 -http://www.xwiki.org/rel/pages | The representations containing the list of pages in a space.
36 -http://www.xwiki.org/rel/translation| The representation containing a translation of a page.
37 -http://www.xwiki.org/rel/page | The representation for a page.
38 -http://www.xwiki.org/rel/space | The representation for a space.
39 -http://www.xwiki.org/rel/parent | The representation for the page that is parent of the current resource.
40 -http://www.xwiki.org/rel/home | The representation for the page that is the home of the current resource.
41 -http://www.xwiki.org/rel/attachmentData | The representation of the actual attachment data.
42 -http://www.xwiki.org/rel/comments | The representation of the list of comments associated to the current resource.
43 -http://www.xwiki.org/rel/attachments | The representation of the list of attachments associated to the current resource.
44 -http://www.xwiki.org/rel/objects | The representation of the list of objects associated to the current resource.
45 -http://www.xwiki.org/rel/object | The representation for an object.
46 -http://www.xwiki.org/rel/classes | The representation of the list of classes associated to the current resource.
47 -http://www.xwiki.org/rel/history | The representation of the list of history information associated to the current resource.
48 -http://www.xwiki.org/rel/class | The representation for a class.
49 -http://www.xwiki.org/rel/property | The representation for a property.
50 -http://www.xwiki.org/rel/properties | The representation of the list of properties associated to the current resource.
51 -http://www.xwiki.org/rel/modifications | The representation of the list of modifications associated to the current resource.
52 -http://www.xwiki.org/rel/children | The representation of the list of children associated to the current resource.
53 -http://www.xwiki.org/rel/tags | The representation of the list of tags associated to the current resource.
54 -http://www.xwiki.org/rel/tag | The representation of a tag.
55 -http://www.xwiki.org/rel/search | The representation for a search resource.
56 -{table}
29 +|=Rel|=Semantics
30 +|http://www.xwiki.org/rel/wikis|The representation containing the list of virtual wikis.
31 +|http://www.xwiki.org/rel/spaces|The representation containing the list of spaces in a wiki.
32 +|http://www.xwiki.org/rel/pages|The representations containing the list of pages in a space.
33 +|http://www.xwiki.org/rel/translation|The representation containing a translation of a page.
34 +|http://www.xwiki.org/rel/page|The representation for a page.
35 +|http://www.xwiki.org/rel/space|The representation for a space.
36 +|http://www.xwiki.org/rel/parent|The representation for the page that is parent of the current resource.
37 +|http://www.xwiki.org/rel/home|The representation for the page that is the home of the current resource.
38 +|http://www.xwiki.org/rel/attachmentData|The representation of the actual attachment data.
39 +|http://www.xwiki.org/rel/comments|The representation of the list of comments associated to the current resource.
40 +|http://www.xwiki.org/rel/attachments|The representation of the list of attachments associated to the current resource.
41 +|http://www.xwiki.org/rel/objects|The representation of the list of objects associated to the current resource.
42 +|http://www.xwiki.org/rel/object|The representation for an object.
43 +|http://www.xwiki.org/rel/classes|The representation of the list of classes associated to the current resource.
44 +|http://www.xwiki.org/rel/history|The representation of the list of history information associated to the current resource.
45 +|http://www.xwiki.org/rel/class|The representation for a class.
46 +|http://www.xwiki.org/rel/property|The representation for a property.
47 +|http://www.xwiki.org/rel/properties|The representation of the list of properties associated to the current resource.
48 +|http://www.xwiki.org/rel/modifications|The representation of the list of modifications associated to the current resource.
49 +|http://www.xwiki.org/rel/children|The representation of the list of children associated to the current resource.
50 +|http://www.xwiki.org/rel/tags|The representation of the list of tags associated to the current resource.
51 +|http://www.xwiki.org/rel/tag|The representation of a tag.
52 +|http://www.xwiki.org/rel/search|The representation for a search resource.
57 57  
58 58  Relations are defined as URIs in order to provide a sort of namespace. Currently these URIs are not links to real web pages but, in the future, they might point to descriptions of their semantics on actual web pages (or other kinds of representations).
59 59  
60 -1.1.1 The "HATEOAS" Graph
56 +=== The "HATEOAS" Graph ===
61 61  
62 -In order to better understand the relations among resources you might have a look at this {attach:graph|file=XWikiHATEOAS.pdf} that pictures all the resources available in the XWiki RESTful API and the relations among them. In this graph, nodes are [URI templates > http://bitworking.org/projects/URI-Templates/spec/draft-gregorio-uritemplate-03.txt] representing classes of resources. Edges are the possible links that you might find in a representation of a given resource, and their associated relations.
58 +In order to better understand the relations among resources you might have a look at this [[graph>>attach:XWikiHATEOAS.pdf||]] that pictures all the resources available in the XWiki RESTful API and the relations among them. In this graph, nodes are [[URI templates>>http://bitworking.org/projects/URI-Templates/spec/draft-gregorio-uritemplate-03.txt]] representing classes of resources. Edges are the possible links that you might find in a representation of a given resource, and their associated relations.
63 63  
64 64  This graph shows that by starting from the API entry-point a client can navigate and discover all the resources just by following the links provided in representations (and by knowing their semantics). This was exactly the way how this graph was generated.
65 65  
62 +== Interacting with the XWiki RESTful API ==
66 66  
67 -
68 -1.1 Interacting with the XWiki RESTful API
69 -
70 70  The XWiki RESTful API is accessible through HTTP so, in principle, you can use every client that is capable of "speaking" HTTP in order to interact with it. Even a web browser!
71 -If you want to write more complex programs you might download an HTTP library for your favorite language (e.g., [http://hc.apache.org/]).
65 +If you want to write more complex programs you might download an HTTP library for your favorite language (e.g., [[http://hc.apache.org/]]).
72 72  
73 -Java users might take advantage of the [JAXB > https://jaxb.dev.java.net] framework and its [XJC binding compiler > https://jaxb.dev.java.net/jaxb20-ea3/docs/xjc.html] in order to generate domain object models directly from the [XML Schema Definition > http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-rest/src/main/resources/xwiki.rest.model.xsd], and use them for serializing and de-serializing XML representations.
67 +Java users might take advantage of the [[JAXB>>https://jaxb.dev.java.net]] framework and its [[XJC binding compiler>>https://jaxb.dev.java.net/jaxb20-ea3/docs/xjc.html]] in order to generate domain object models directly from the [[XML Schema Definition>>http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-rest/src/main/resources/xwiki.rest.model.xsd]], and use them for serializing and de-serializing XML representations.
74 74  
75 75  If you use this approach (Apache HTTP Client + JAXB) you will find yourself writing some code like this:
76 76  
77 -{code}
71 +{{code}}
78 78  HttpClient httpClient = new HttpClient();
79 79  JAXBContext context = JAXBContext.newInstance("model.package");
80 80  unmarshaller = context.createUnmarshaller();
... ... @@ -84,46 +84,45 @@
84 84  httpClient.executeMethod(getMethod);
85 85  
86 86  Page page = (Page) unmarshaller.unmarshal(getMethod.getResponseBodyAsStream());
87 -{code}
81 +{{/code}}
88 88  
89 89  And you will have all the information about the Main.WebHome page in the Page object, without the need of handling XML directly.
90 90  
91 -Because of the wide variety of HTTP frameworks available we don't provide a full tutorial about using them. However, in order to show you how to interact with the XWiki RESTful API, we will use [curl > http://curl.haxx.se]: a standard command line HTTP client that provides an interface to all the functionalities of the HTTP protocol.
85 +Because of the wide variety of HTTP frameworks available we don't provide a full tutorial about using them. However, in order to show you how to interact with the XWiki RESTful API, we will use [[curl>>http://curl.haxx.se]]: a standard command line HTTP client that provides an interface to all the functionalities of the HTTP protocol.
92 92  
93 93  By using curl, the previous example would have been:
94 94  
95 -{code}
89 +{{code}}
96 96  $ curl http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/Main/pages/WebHome
97 97  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
98 98  <page xmlns="http://www.xwiki.org">
99 99   <link rel="http://www.xwiki.org/rel/space" href="http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/Main"/>
100 100   ...
101 -{code}
95 +{{/code}}
102 102  
103 -1.1.1 Authentication
97 +=== Authentication ===
104 104  
105 105  The XWiki RESTful API supports two types of authentication:
106 106  
107 -* *HTTP BASIC Auth*: You provide your credentials using the Authorization HTTP header
101 +* **HTTP BASIC Auth**: You provide your credentials using the Authorization HTTP header
102 +* **XWiki session**: If you are logged in XWiki and you use the cookies provided by the authentication mechanism, you will also be authenticated to the XWiki RESTful API. This is useful, for example, when you are interacting with the API using the XMLHttpRequest object of a browser using Javascript.
108 108  
109 -* *XWiki session*: If you are logged in XWiki and you use the cookies provided by the authentication mechanism, you will also be authenticated to the XWiki RESTful API. This is useful, for example, when you are interacting with the API using the XMLHttpRequest object of a browser using Javascript.
110 -
111 111  If you don't provide any credentials the XWiki RESTful API will recognize you as a XWiki.Guest user.
112 112  
113 113  So if you have, let's say a Main.PrivatePage, and you try to do:
114 114  
115 -{code}
108 +{{code}}
116 116  $ curl -v http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/Main/pages/PrivatePage
117 117  ...
118 118  < HTTP/1.1 401 Unauthorized
119 119  ...
120 -{code}
113 +{{/code}}
121 121  
122 -You will get an Unathorized empty response.
115 +You will get an Unauthorized empty response.
123 123  
124 124  On the contrary, by specifying Admin credentials you gain access to the actual page:
125 125  
126 -{code}
119 +{{code}}
127 127  $ curl -u Admin:admin http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/Main/pages/PrivatePage
128 128  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
129 129  <page xmlns="http://www.xwiki.org">
... ... @@ -131,18 +131,18 @@
131 131   ...
132 132   <content>Only admin can see this</content>
133 133  </page>
134 -{code}
127 +{{/code}}
135 135  
136 -1.1.1 Sending representations
129 +=== Sending representations ===
137 137  
138 138  Many resources are modifiable, so you can send representations in order to change the state of those resources (e.g., pages).
139 -All modifiable resources accept XML representations that conform to the [XML Schema Definition > http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-rest/src/main/resources/xwiki.rest.model.xsd]. However, some other representations might be accepted as well (see the following sections).
132 +All modifiable resources accept XML representations that conform to the [[XML Schema Definition>>http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-rest/src/main/resources/xwiki.rest.model.xsd]]. However, some other representations might be accepted as well (see the following sections).
140 140  
141 141  Resource update is usually done by using the PUT method, while resource creation is done via PUT or POST.
142 142  
143 143  For example, in order to create a page you might do the following:
144 144  
145 -{code}
138 +{{code}}
146 146  $ curl -u Admin:admin -X PUT -d "@newpage.xml" -H "Content-Type: application/xml" http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/Main/pages/NewPage
147 147  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
148 148  <page xmlns="http://www.xwiki.org">
... ... @@ -157,21 +157,21 @@
157 157   <modifier>XWiki.Admin</modifier>
158 158   <content>This is a new page</content>
159 159  </page>
160 -{code}
153 +{{/code}}
161 161  
162 162  Where newpage.xml is an XML file containing
163 163  
164 -{code}
157 +{{code}}
165 165  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
166 166  <page xmlns="http://www.xwiki.org">
167 167   <title>Hello world</title>
168 168   <content>This is a new page</content>
169 169  </page>
170 -{code}
163 +{{/code}}
171 171  
172 172  The page has been created and is accessible. Subsequent PUT requests to the page URI will modify its content.
173 173  
174 -1.1.1 Overcoming browser limitations
167 +=== Overcoming browser limitations ===
175 175  
176 176  As said before, it could be useful to send information by using browser's XmlHttpRequest objects. But currently many browsers only support GET and POST methods, so it is impossible to send, for example, PUT requests. In order to overcome this limitation you can override the HTTP Method by specifying a <tt>method</tt> parameter in the URI query string.
177 177  
... ... @@ -179,538 +179,603 @@
179 179  
180 180  This overriding mechanism allows the interaction with the XWiki RESTful API by using any kind of browser.
181 181  
182 -1.1.1 PUT vs POST
175 +=== PUT vs POST ===
183 183  
184 184  In the following sections you will see that sometimes resources are created by using PUT and sometimes by using POST. The general principle is that if the client is responsible for choosing the resource URI then PUT is used. If it's the server that bears this responsibility then POST is used.
185 185  
186 -To be more clear, when a client wants to create a page it knows *where* that page should go, so it is able to communicate the server the target URI. PUT is used.
179 +To be more clear, when a client wants to create a page it knows **where** that page should go, so it is able to communicate the server the target URI. PUT is used.
187 187  
188 188  A client, on the contrary, cannot know beforehand what will be the URI of a comment, since comment URIs contains the ID of the comment and this information is generated by the server. In this case the client will do a POST and the server, in response, will communicate the URI it generated for the newly created comment.
189 189  
183 +== XWiki RESTful API Documentation ==
190 190  
191 -1.1 XWiki RESTful API Documentation
192 -
193 193  In this section you will find the documentation of the whole XWiki RESTful API.
194 194  
195 -*application/xml* representations refers to the XML Schema Definition at the following location: [http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-rest/src/main/resources/xwiki.rest.model.xsd]
187 +**application/xml** representations refers to the XML Schema Definition at the following location: [[http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-rest/src/main/resources/xwiki.rest.model.xsd]]
196 196  
197 -Resource URIs are specified using [URI templates > http://bitworking.org/projects/URI-Templates/spec/draft-gregorio-uritemplate-03.txt]. Bracketed elements are formal parameters and should be instantiated to actual values in order to retrieve the associated resource.
189 +Resource URIs are specified using [[URI templates>>http://bitworking.org/projects/URI-Templates/spec/draft-gregorio-uritemplate-03.txt]]. Bracketed elements are formal parameters and should be instantiated to actual values in order to retrieve the associated resource.
198 198  
199 -1.1.1 Root resources
191 +=== Root resources ===
200 200  
201 -1.1.1.1 /
202 -* *HTTP Method:* GET
203 -** *Media types:*
193 +==== / ====
194 +
195 +* **HTTP Method:** GET
196 +** **Media types:**
204 204  *** application/xml (XWiki element)
205 -** *Description:* Retrieves the entry root description containing information about the server.
206 -** *Status codes:*
198 +** **Description:** Retrieves the entry root description containing information about the server.
199 +** **Status codes:**
207 207  *** 200: If the request was successful.
208 208  
209 -1.1.1.1 /wikis
210 -* *HTTP Method:* GET
211 -** *Media types:*
202 +==== /wikis ====
203 +
204 +* **HTTP Method:** GET
205 +** **Media types:**
212 212  *** application/xml (Wikis element)
213 -** *Description:* Retrieves the entry root description containing information about the server.
214 -** *Status codes:*
207 +** **Description:** Retrieves the entry root description containing information about the server.
208 +** **Status codes:**
215 215  *** 200: If the request was successful.
216 216  
217 -1.1.1.1 /wikis/{wikiName}/search?q={keywords}\[\[&scope={name,content,title,objects}...\]&number=n\]
218 -* *HTTP Method:* GET
219 -** *Media types:*
211 +==== /wikis/{wikiName}/search?q~={keywords}~[~[&scope~={name,content,title,objects}...~]&number~=n~] ====
212 +
213 +* **HTTP Method:** GET
214 +** **Media types:**
220 220  *** application/xml (SearchResults element)
221 -** *Description:* The list of pages and objects that contain the {keywords} in the specified {scope}s. Multiple scopes can be specified. Search results are relative to the whole {wikiName}
222 -** *Status codes:*
216 +** **Description:** The list of pages and objects that contain the {keywords} in the specified {scope}s. Multiple scopes can be specified. Search results are relative to the whole {wikiName}
217 +** **Status codes:**
223 223  *** 200: If the request was successful.
224 224  
225 -1.1.1 Space resources
220 +=== Space resources ===
226 226  
227 -1.1.1.1 /wikis/{wikiName}/spaces\[?start=offset&number=n\]
228 -* *HTTP Method:* GET
229 -** *Media types:*
222 +==== /wikis/{wikiName}/spaces[[?start=offset&number=n]] ====
223 +
224 +* **HTTP Method:** GET
225 +** **Media types:**
230 230  *** application/xml (Spaces element)
231 -** *Description:* Retrieves the list of spaces available in the {wikiName} wiki.
232 -** *Status codes:*
227 +** **Description:** Retrieves the list of spaces available in the {wikiName} wiki.
228 +** **Status codes:**
233 233  *** 200: If the request was successful.
234 234  
235 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/search?q={keywords}\[\[&scope={name,content,title,objects}...\]&number=n\]
236 -* *HTTP Method:* GET
237 -** *Media types:*
231 +==== /wikis/{wikiName}/spaces/{spaceName}/search?q~={keywords}~[~[&scope~={name,content,title,objects}...~]&number~=n~] ====
232 +
233 +* **HTTP Method:** GET
234 +** **Media types:**
238 238  *** application/xml (Search results element)
239 -** *Description:* The list of pages and objects that contain the {keywords} in the specified {scope}s. Multiple scopes can be specified. Search results are relative to space {spaceName}
240 -** *Status codes:*
236 +** **Description:** The list of pages and objects that contain the {keywords} in the specified {scope}s. Multiple scopes can be specified. Search results are relative to space {spaceName}
237 +** **Status codes:**
241 241  *** 200: If the request was successful.
242 242  *** 401: If the user is not authorized.
243 243  
244 -1.1.1 Page resources
241 +=== Page resources ===
245 245  
246 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages\[?start=offset&number=n\]
247 -* *HTTP Method:* GET
248 -** *Media types:*
243 +==== /wikis/{wikiName}/spaces/{spaceName}/pages[[?start=offset&number=n]] ====
244 +
245 +* **HTTP Method:** GET
246 +** **Media types:**
249 249  *** application/xml (Pages element)
250 -** *Description:* The list of pages in the space {spaceName}
251 -** *Status codes:*
248 +** **Description:** The list of pages in the space {spaceName}
249 +** **Status codes:**
252 252  *** 200: If the request was successful
253 253  *** 401: If the user is not authorized.
254 254  
255 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}
256 -* *HTTP Method:* GET
257 -** *Media types:*
253 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName} ====
254 +
255 +* **HTTP Method:** GET
256 +** **Media types:**
258 258  *** application/xml (Page element)
259 -** *Description:*
260 -** *Status codes:*
258 +** **Description:**
259 +** **Status codes:**
261 261  *** 200: If the request was successful.
262 262  *** 401: If the user is not authorized.
263 -<br/>
264 -* *HTTP Method:* PUT
265 -** *Accepted Media types:*
262 +
263 +\\
264 +
265 +* **HTTP Method:** PUT
266 +** **Accepted Media types:**
266 266  *** application/xml (Page element)
267 267  *** text/plain (Only page content)
268 268  *** application/x-www-form-urlencoded (allowed field names: title, parent, content)
269 -** *Media types:*
270 +** **Media types:**
270 270  *** application/xml (Page element)
271 -** *Description:* Create or updates a page.
272 -** *Status codes:*
272 +** **Description:** Create or updates a page.
273 +** **Status codes:**
273 273  *** 201: If the page was created.
274 274  *** 202: If the page was updated.
275 275  *** 304: If the page was not modified.
276 276  *** 401: If the user is not authorized.
277 -<br/>
278 -* *HTTP Method:* DELETE
279 -** *Media types:*
278 +
279 +\\
280 +
281 +* **HTTP Method:** DELETE
282 +** **Media types:**
280 280  *** application/xml (Page element)
281 -** *Description:* Delete the page.
282 -** *Status codes:*
284 +** **Description:** Delete the page.
285 +** **Status codes:**
283 283  *** 204: If the request was successful.
284 284  *** 401: If the user is not authorized.
285 285  
286 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history\[?start=offset&number=n\]
287 -* *HTTP Method:* GET
288 -** *Media types:*
289 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history[[?start=offset&number=n]] ====
290 +
291 +* **HTTP Method:** GET
292 +** **Media types:**
289 289  *** application/xml (History element)
290 -** *Description:* The list of all the versions of the given page.
291 -** *Status codes:*
294 +** **Description:** The list of all the versions of the given page.
295 +** **Status codes:**
292 292  *** 200: If the request was successful.
293 293  *** 401: If the user is not authorized.
294 294  
295 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}
296 -* *HTTP Method:* GET
297 -** *Media types:*
299 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version} ====
300 +
301 +* **HTTP Method:** GET
302 +** **Media types:**
298 298  *** application/xml (Page element)
299 -** *Description:* The page at version {version}
300 -** *Status codes:*
304 +** **Description:** The page at version {version}
305 +** **Status codes:**
301 301  *** 200: If the request was successful.
302 302  *** 401: If the user is not authorized.
303 303  
304 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/translations\[?start=offset&number=n\]
305 -* *HTTP Method:* GET
306 -** *Media types:*
309 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/translations[[?start=offset&number=n]] ====
310 +
311 +* **HTTP Method:** GET
312 +** **Media types:**
307 307  *** application/xml (Translations element)
308 -** *Description:* The list of available translation for the page
309 -** *Status codes:*
314 +** **Description:** The list of available translation for the page
315 +** **Status codes:**
310 310  *** 200: If the request was successful.
311 311  *** 401: If the user is not authorized.
312 312  
313 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/translations/{language}
314 -* *HTTP Method:* GET
315 -** *Media types:*
319 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/translations/{language} ====
320 +
321 +* **HTTP Method:** GET
322 +** **Media types:**
316 316  *** application/xml (Page element)
317 -** *Description:* The page at in the given {language}.
318 -** *Status codes:*
324 +** **Description:** The page at in the given {language}.
325 +** **Status codes:**
319 319  *** 200: If the request was successful.
320 320  *** 401: If the user is not authorized.
321 -<br/>
322 -* *HTTP Method:* PUT
323 -** *Accepted Media types:*
328 +
329 +\\
330 +
331 +* **HTTP Method:** PUT
332 +** **Accepted Media types:**
324 324  *** application/xml (Page element)
325 325  *** text/plain (Only page content)
326 326  *** application/x-www-form-urlencoded (allowed field names: title, parent, content)
327 -** *Media types:*
336 +** **Media types:**
328 328  *** application/xml (Page element)
329 -** *Description:* Create or updates a page translation.
330 -** *Status codes:*
338 +** **Description:** Create or updates a page translation.
339 +** **Status codes:**
331 331  *** 201: If the page was created.
332 332  *** 202: If the page was updated.
333 333  *** 304: If the page was not modified.
334 334  *** 401: If the user is not authorized.
335 -<br/>
336 -* *HTTP Method:* DELETE
337 -** *Media types:*
344 +
345 +\\
346 +
347 +* **HTTP Method:** DELETE
348 +** **Media types:**
338 338  *** application/xml (Page element)
339 -** *Description:* Delete the page translation.
340 -** *Status codes:*
350 +** **Description:** Delete the page translation.
351 +** **Status codes:**
341 341  *** 204: If the request was successful.
342 342  *** 401: If the user is not authorized.
343 343  
344 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/translations/{language}/history
345 -* *HTTP Method:* GET
346 -** *Media types:*
355 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/translations/{language}/history ====
356 +
357 +* **HTTP Method:** GET
358 +** **Media types:**
347 347  *** application/xml (History element)
348 -** *Description:* The list of all the available revisions of the page in a given {language}.
349 -** *Status codes:*
360 +** **Description:** The list of all the available revisions of the page in a given {language}.
361 +** **Status codes:**
350 350  *** 200: If the request was successful.
351 351  *** 401: If the user is not authorized.
352 352  
353 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/translations/{lang}/history/{version}
354 -* *HTTP Method:* GET
355 -** *Media types:*
365 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/translations/{lang}/history/{version} ====
366 +
367 +* **HTTP Method:** GET
368 +** **Media types:**
356 356  *** application/xml (Page element)
357 -** *Description:* A page at a given {version} in a given {language}.
358 -** *Status codes:*
370 +** **Description:** A page at a given {version} in a given {language}.
371 +** **Status codes:**
359 359  *** 200: If the request was successful.
360 360  *** 401: If the user is not authorized.
361 361  
362 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/children
363 -* *HTTP Method:* GET
364 -** *Media types:*
375 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/children ====
376 +
377 +* **HTTP Method:** GET
378 +** **Media types:**
365 365  *** application/xml (Pages element)
366 -** *Description:* The list of the children of a given page.
367 -** *Status codes:*
380 +** **Description:** The list of the children of a given page.
381 +** **Status codes:**
368 368  *** 200: If the request was successful.
369 369  *** 401: If the user is not authorized.
370 370  
371 -1.1.1 Tag resources
385 +=== Tag resources ===
372 372  
373 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/tags
374 -* *HTTP Method:* GET
375 -** *Media types:*
387 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/tags ====
388 +
389 +* **HTTP Method:** GET
390 +** **Media types:**
376 376  *** application/xml (Tags element)
377 -** *Description:* List page tags.
378 -** *Status codes:*
392 +** **Description:** List page tags.
393 +** **Status codes:**
379 379  *** 200: If the request was successful.
380 380  *** 401: If the user is not authorized.
381 -<br/>
382 -* *HTTP Method:* PUT
383 -** *Accepted Media types:*
396 +
397 +\\
398 +
399 +* **HTTP Method:** PUT
400 +** **Accepted Media types:**
384 384  *** application/xml (Tag element)
385 385  *** text/plain
386 386  *** application/x-www-form-urlencoded (allowed field names: tag)
387 -** *Media types:*
404 +** **Media types:**
388 388  *** application/xml (Tags element)
389 -** *Description:* Add a tag to the page.
390 -** *Status codes:*
406 +** **Description:** Add a tag to the page.
407 +** **Status codes:**
391 391  *** 202: If the request was successful.
392 392  *** 401: If the user is not authorized.
393 393  
394 -1.1.1.1 /wikis/{wikiName}/tags
395 -* *HTTP Method:* GET
396 -** *Media types:*
411 +==== /wikis/{wikiName}/tags ====
412 +
413 +* **HTTP Method:** GET
414 +** **Media types:**
397 397  *** application/xml (Tags element)
398 -** *Description:* The list of all available tags
399 -** *Status codes:*
416 +** **Description:** The list of all available tags
417 +** **Status codes:**
400 400  *** 200: If the request was successful.
401 401  *** 401: If the user is not authorized.
402 402  
403 -1.1.1.1 /wikis/{wikiName}/tags/{tag1}\[,{tag2},{tag3}...\]\[?start=offset&number=n\]
404 -* *HTTP Method:* GET
405 -** *Media types:*
421 +==== /wikis/{wikiName}/tags/{tag1}[[,{tag2},{tag3}...]][[?start=offset&number=n]] ====
422 +
423 +* **HTTP Method:** GET
424 +** **Media types:**
406 406  *** application/xml (Pages element)
407 -** *Description:* The list of pages having the specified tags.
408 -** *Status codes:*
426 +** **Description:** The list of pages having the specified tags.
427 +** **Status codes:**
409 409  *** 200: If the request was successful.
410 410  *** 401: If the user is not authorized.
411 411  
412 -1.1.1 Comments resources
431 +=== Comments resources ===
413 413  
414 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/comments\[?start=offset&number=n\]
415 -* *HTTP Method:* GET
416 -** *Media types:*
433 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/comments[[?start=offset&number=n]] ====
434 +
435 +* **HTTP Method:** GET
436 +** **Media types:**
417 417  *** application/xml (Comments element)
418 -** *Description:* The list of comments on a given page.
419 -** *Status codes:*
438 +** **Description:** The list of comments on a given page.
439 +** **Status codes:**
420 420  *** 200: If the request was successful.
421 421  *** 401: If the user is not authorized.
422 -<br/>
423 -* *HTTP Method:* POST
424 -** *Accepted Media types:*
442 +
443 +\\
444 +
445 +* **HTTP Method:** POST
446 +** **Accepted Media types:**
425 425  *** application/xml (Comment element)
426 426  *** text/plain
427 427  *** application/x-www-form-urlencoded (allowed field names: text)
428 -** *Media types:*
450 +** **Media types:**
429 429  *** application/xml (Comment element)
430 -** *Description:* Create a comment on the given page.
431 -** *Status codes:*
452 +** **Description:** Create a comment on the given page.
453 +** **Status codes:**
432 432  *** 201: If the comment was created. (The Location header will contain the URI where the comment has been created.)
433 433  *** 401: If the user is not authorized.
434 434  
435 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/comments/{commentId}
436 -* *HTTP Method:* GET
437 -** *Media types:*
457 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/comments/{commentId} ====
458 +
459 +* **HTTP Method:** GET
460 +** **Media types:**
438 438  *** application/xml (Comment element)
439 -** *Description:* A specific comment on a page
440 -** *Status codes:*
462 +** **Description:** A specific comment on a page
463 +** **Status codes:**
441 441  *** 200: If the request was successful.
442 442  *** 401: If the user is not authorized.
443 443  
444 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/comments
445 -* *HTTP Method:* GET
446 -** *Media types:*
467 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/comments ====
468 +
469 +* **HTTP Method:** GET
470 +** **Media types:**
447 447  *** application/xml (Comments element)
448 -** *Description:* The list of comments at a specific page {version}.
449 -** *Status codes:*
472 +** **Description:** The list of comments at a specific page {version}.
473 +** **Status codes:**
450 450  *** 200: If the request was successful.
451 451  *** 401: If the user is not authorized.
452 452  
453 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/comments/{commentId}
454 -* *HTTP Method:* GET
455 -** *Media types:*
477 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/comments/{commentId} ====
478 +
479 +* **HTTP Method:** GET
480 +** **Media types:**
456 456  *** application/xml (Comment element)
457 -** *Description:* A comment at a specific page {version}.
458 -** *Status codes:*
482 +** **Description:** A comment at a specific page {version}.
483 +** **Status codes:**
459 459  *** 200: If the request was successful.
460 460  *** 401: If the user is not authorized.
461 461  
462 -1.1.1 Attachments resources
487 +=== Attachments resources ===
463 463  
464 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/attachments\[?start=offset&number=n\]
465 -* *HTTP Method:* GET
466 -** *Media types:*
489 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/attachments[[?start=offset&number=n]] ====
490 +
491 +* **HTTP Method:** GET
492 +** **Media types:**
467 467  *** application/xml (Attachments element)
468 -** *Description:* The list of attachments of a given page.
469 -** *Status codes:*
494 +** **Description:** The list of attachments of a given page.
495 +** **Status codes:**
470 470  *** 200: If the request was successful.
471 471  *** 401: If the user is not authorized.
472 472  
473 -1.1.1.1 /wikis/{wikiName}/wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/attachments/{attachmentName}
474 -* *HTTP Method:* GET
475 -** *Media types:*
499 +==== /wikis/{wikiName}/wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/attachments/{attachmentName} ====
500 +
501 +* **HTTP Method:** GET
502 +** **Media types:**
476 476  *** The same of the attachment media type.
477 -** *Description:* The attachment identified by {attachmentName} on a given page.
478 -** *Status codes:*
504 +** **Description:** The attachment identified by {attachmentName} on a given page.
505 +** **Status codes:**
479 479  *** 200: If the request was successful.
480 480  *** 401: If the user is not authorized.
481 -<br/>
482 -* *HTTP Method:* PUT
483 -** *Accepted media types:*
484 -*** \*/\*
485 -** *Media types:*
508 +
509 +\\
510 +
511 +* **HTTP Method:** PUT
512 +** **Accepted media types:**
513 +*** **/**
514 +** **Media types:**
486 486  *** application/xml (AttachmentSummary element)
487 -** *Description:* Create an attachment identified by {attachmentName} on a given page.
488 -** *Status codes:*
516 +** **Description:** Create an attachment identified by {attachmentName} on a given page.
517 +** **Status codes:**
489 489  *** 201: If the attachment was created.
490 490  *** 202: If the attachment was updated.
491 491  *** 401: If the user is not authorized.
492 -<br/>
493 -* *HTTP Method:* DELETE
494 -** *Media types:*
495 -** *Description:* Delete the attachment identified by {attachmentName} on a given page.
496 -** *Status codes:*
521 +
522 +\\
523 +
524 +* **HTTP Method:** DELETE
525 +** **Media types:**
526 +** **Description:** Delete the attachment identified by {attachmentName} on a given page.
527 +** **Status codes:**
497 497  *** 204: If the attachment was deleted.
498 498  *** 401: If the user is not authorized.
499 499  
500 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/attachments\[?start=offset&number=n\]
501 -* *HTTP Method:* GET
502 -** *Media types:*
531 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/attachments[[?start=offset&number=n]] ====
532 +
533 +* **HTTP Method:** GET
534 +** **Media types:**
503 503  *** application/xml (Attachments element)
504 -** *Description:* The list of attachments at a given page {version}.
505 -** *Status codes:*
536 +** **Description:** The list of attachments at a given page {version}.
537 +** **Status codes:**
506 506  *** 200: If the request was successful.
507 507  *** 401: If the user is not authorized.
508 508  
509 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/attachments/{attachmentName}
510 -* *HTTP Method:* GET
511 -** *Media types:*
541 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/attachments/{attachmentName} ====
542 +
543 +* **HTTP Method:** GET
544 +** **Media types:**
512 512  *** The same of the attachment media type.
513 -** *Description:* The attachment identified by {attachmentName} on a given page {version}.
514 -** *Status codes:*
546 +** **Description:** The attachment identified by {attachmentName} on a given page {version}.
547 +** **Status codes:**
515 515  *** 200: If the request was successful.
516 516  *** 401: If the user is not authorized.
517 517  
518 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/attachments/{attachmentName}/history
519 -* *HTTP Method:* GET
520 -** *Media types:*
551 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/attachments/{attachmentName}/history ====
552 +
553 +* **HTTP Method:** GET
554 +** **Media types:**
521 521  *** application/xml (??? element)
522 -** *Description:* The list of available version for the {attachmentName}
523 -** *Status codes:*
556 +** **Description:** The list of available version for the {attachmentName}
557 +** **Status codes:**
524 524  *** 200: If the request was successful.
525 525  *** 401: If the user is not authorized.
526 526  
527 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/attachments/{attachmentName}/history/{version}
528 -* *HTTP Method:* GET
529 -** *Media types:*
561 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/attachments/{attachmentName}/history/{version} ====
562 +
563 +* **HTTP Method:** GET
564 +** **Media types:**
530 530  *** The same of the attachment media type.
531 -** *Description:* The {attachmentName} at a given {version}
532 -** *Status codes:*
566 +** **Description:** The {attachmentName} at a given {version}
567 +** **Status codes:**
533 533  *** 200: If the request was successful.
534 534  *** 401: If the user is not authorized.
535 535  
536 -1.1.1 Object resources
571 +=== Object resources ===
537 537  
538 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/objects\[?start=offset&number=n\]
539 -* *HTTP Method:* GET
540 -** *Media types:*
573 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/objects[[?start=offset&number=n]] ====
574 +
575 +* **HTTP Method:** GET
576 +** **Media types:**
541 541  *** application/xml (Objects element)
542 -** *Description:* The list of objects associated to a page.
543 -** *Status codes:*
578 +** **Description:** The list of objects associated to a page.
579 +** **Status codes:**
544 544  *** 200: If the request was successful.
545 545  *** 401: If the user is not authorized.
546 -<br/>
547 -* *HTTP Method:* POST
548 -** *Accepted media types:*
582 +
583 +\\
584 +
585 +* **HTTP Method:** POST
586 +** **Accepted media types:**
549 549  *** application/xml (Object element)
550 550  *** application/x-www-formurlencoded (a set of property#name=value pairs representing properties and a field className)
551 -** *Media types:*
552 -*** application/xml (Object element)
553 -** *Description:* Create a new object.
554 -** *Status codes:*
589 +** **Media types:**
590 +*** application/xml (Object element)
591 +** **Description:** Create a new object.
592 +** **Status codes:**
555 555  *** 201: If the object was created (The Location header will contain the URI associated to the newly created object).
556 556  *** 401: If the user is not authorized.
557 557  
558 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/objects/{className}\[?start=offset&number=n\]
559 -* *HTTP Method:* GET
560 -** *Media types:*
596 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/objects/{className}[[?start=offset&number=n]] ====
597 +
598 +* **HTTP Method:** GET
599 +** **Media types:**
561 561  *** application/xml (Objects element)
562 -** *Description:* The list of objects of a given {className} associated to a page.
563 -** *Status codes:*
601 +** **Description:** The list of objects of a given {className} associated to a page.
602 +** **Status codes:**
564 564  *** 200: If the request was successful.
565 565  *** 401: If the user is not authorized.
566 566  
567 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/objects/{className}/{objectNumber}
568 -* *HTTP Method:* GET
569 -** *Media types:*
606 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/objects/{className}/{objectNumber} ====
607 +
608 +* **HTTP Method:** GET
609 +** **Media types:**
570 570  *** application/xml (Object element)
571 -** *Description:* The object of type {className} identified by {objectNumber} associated to the given page.
572 -** *Status codes:*
611 +** **Description:** The object of type {className} identified by {objectNumber} associated to the given page.
612 +** **Status codes:**
573 573  *** 200: If the request was successful.
574 574  *** 401: If the user is not authorized.
575 -<br/>
576 -* *HTTP Method:* PUT
577 -** *Accepted media types:*
615 +
616 +\\
617 +
618 +* **HTTP Method:** PUT
619 +** **Accepted media types:**
578 578  *** application/xml (Object element)
579 579  *** application/x-www-formurlencoded (a set of property#name=value pairs representing properties)
580 -** *Media types:*
581 -*** application/xml (Object element)
582 -** *Description:* Modify the object properties.
583 -** *Status codes:*
622 +** **Media types:**
623 +*** application/xml (Object element)
624 +** **Description:** Modify the object properties.
625 +** **Status codes:**
584 584  *** 202: If the object was updated.
585 585  *** 401: If the user is not authorized.
586 -<br/>
587 -* *HTTP Method:* DELETE
588 -** *Media types:*
589 -** *Description:* Delete the object.
590 -** *Status codes:*
628 +
629 +\\
630 +
631 +* **HTTP Method:** DELETE
632 +** **Media types:**
633 +** **Description:** Delete the object.
634 +** **Status codes:**
591 591  *** 204: If the object was deleted.
592 592  *** 401: If the user is not authorized.
593 593  
594 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/objects/{className}/{objectNumber}/properties
595 -* *HTTP Method:* GET
596 -** *Media types:*
638 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/objects/{className}/{objectNumber}/properties ====
639 +
640 +* **HTTP Method:** GET
641 +** **Media types:**
597 597  *** application/xml (Properties element)
598 -** *Description:* The properties of the object of type {className} identified by {objectNumber} associated to the given page.
599 -** *Status codes:*
643 +** **Description:** The properties of the object of type {className} identified by {objectNumber} associated to the given page.
644 +** **Status codes:**
600 600  *** 200: If the request was successful.
601 601  *** 401: If the user is not authorized.
602 602  
603 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/objects/{className}/{objectNumber}/properties/{propertyName}
604 -* *HTTP Method:* GET
605 -** *Media types:*
648 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/objects/{className}/{objectNumber}/properties/{propertyName} ====
649 +
650 +* **HTTP Method:** GET
651 +** **Media types:**
606 606  *** application/xml (Properties element)
607 -** *Description:* The property {propertyname} of the object of type {className} identified by {objectNumber} associated to the given page.
608 -** *Status codes:*
653 +** **Description:** The property {propertyname} of the object of type {className} identified by {objectNumber} associated to the given page.
654 +** **Status codes:**
609 609  *** 200: If the request was successful.
610 610  *** 401: If the user is not authorized.
611 -<br/>
612 -* *HTTP Method:* PUT
613 -** *Accepted media types:*
657 +
658 +\\
659 +
660 +* **HTTP Method:** PUT
661 +** **Accepted media types:**
614 614  *** application/xml (Property element)
615 615  *** text/plain
616 616  *** application/x-www-formurlencoded (a field property#name=value pairs representing a property)
617 -** *Media types:*
618 -*** application/xml (Property element)
619 -** *Description:* Modify the object properties.
620 -** *Status codes:*
665 +** **Media types:**
666 +*** application/xml (Property element)
667 +** **Description:** Modify the object properties.
668 +** **Status codes:**
621 621  *** 202: If the object was updated.
622 622  *** 401: If the user is not authorized.
623 623  
624 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/objects\[?start=offset&number=n\]
625 -* *HTTP Method:* GET
626 -** *Media types:*
672 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/objects[[?start=offset&number=n]] ====
673 +
674 +* **HTTP Method:** GET
675 +** **Media types:**
627 627  *** application/xml (Objects element)
628 -** *Description:* The list of objects associated to a page at a given {version}.
629 -** *Status codes:*
677 +** **Description:** The list of objects associated to a page at a given {version}.
678 +** **Status codes:**
630 630  *** 200: If the request was successful.
631 631  *** 401: If the user is not authorized.
632 632  
633 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/objects/{className}/{objectNumber}
634 -* *HTTP Method:* GET
635 -** *Media types:*
682 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/objects/{className}/{objectNumber} ====
683 +
684 +* **HTTP Method:** GET
685 +** **Media types:**
636 636  *** application/xml (Object element)
637 -** *Description:* The object of type {className} identified by {objectNumber} associated to the given page at a given {version}.
638 -** *Status codes:*
687 +** **Description:** The object of type {className} identified by {objectNumber} associated to the given page at a given {version}.
688 +** **Status codes:**
639 639  *** 200: If the request was successful.
640 640  *** 401: If the user is not authorized.
641 641  
642 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/objects/{className}/{objectNumber}/properties
643 -* *HTTP Method:* GET
644 -** *Media types:*
692 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/objects/{className}/{objectNumber}/properties ====
693 +
694 +* **HTTP Method:** GET
695 +** **Media types:**
645 645  *** application/xml (Properties element)
646 -** *Description:* The properties of the object of type {className} identified by {objectNumber} associated to the given page at a given {version}.
647 -** *Status codes:*
697 +** **Description:** The properties of the object of type {className} identified by {objectNumber} associated to the given page at a given {version}.
698 +** **Status codes:**
648 648  *** 200: If the request was successful.
649 649  *** 401: If the user is not authorized.
650 650  
651 -1.1.1.1 /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/objects/{className}/{objectNumber}/properties/{propertyName}
652 -* *HTTP Method:* GET
653 -** *Media types:*
702 +==== /wikis/{wikiName}/spaces/{spaceName}/pages/{pageName}/history/{version}/objects/{className}/{objectNumber}/properties/{propertyName} ====
703 +
704 +* **HTTP Method:** GET
705 +** **Media types:**
654 654  *** application/xml (Properties element)
655 -** *Description:* The property {propertyname} of the object of type {className} identified by {objectNumber} associated to the given page at a given {version}.
656 -** *Status codes:*
707 +** **Description:** The property {propertyname} of the object of type {className} identified by {objectNumber} associated to the given page at a given {version}.
708 +** **Status codes:**
657 657  *** 200: If the request was successful.
658 658  *** 401: If the user is not authorized.
659 659  
660 -1.1.1.1 /wikis/{wikiName}/class/{className}/objects
661 -* *HTTP Method:* GET
662 -** *Media types:*
712 +==== /wikis/{wikiName}/class/{className}/objects ====
713 +
714 +* **HTTP Method:** GET
715 +** **Media types:**
663 663  *** application/xml (Objects element)
664 -** *Description:* The list of all the objects of a given {className}.
665 -** *Status codes:*
717 +** **Description:** The list of all the objects of a given {className}.
718 +** **Status codes:**
666 666  *** 200: If the request was successful.
667 667  *** 401: If the user is not authorized.
668 668  
669 -1.1.1 Class resources
722 +=== Class resources ===
670 670  
671 -1.1.1.1 /wikis/{wikiName}/classes\[?start=offset&number=n\]
672 -* *HTTP Method:* GET
673 -** *Media types:*
724 +==== /wikis/{wikiName}/classes[[?start=offset&number=n]] ====
725 +
726 +* **HTTP Method:** GET
727 +** **Media types:**
674 674  *** application/xml (Classes element)
675 -** *Description:* The list of all the classes defined in the wiki {wikiName}
676 -** *Status codes:*
729 +** **Description:** The list of all the classes defined in the wiki {wikiName}
730 +** **Status codes:**
677 677  *** 200: If the request was successful.
678 678  *** 401: If the user is not authorized.
679 679  
680 -1.1.1.1 /wikis/{wikiName}/classes/{className}
681 -* *HTTP Method:* GET
682 -** *Media types:*
734 +==== /wikis/{wikiName}/classes/{className} ====
735 +
736 +* **HTTP Method:** GET
737 +** **Media types:**
683 683  *** application/xml (Class element)
684 -** *Description:* The {className} definition
685 -** *Status codes:*
739 +** **Description:** The {className} definition
740 +** **Status codes:**
686 686  *** 200: If the request was successful.
687 687  *** 401: If the user is not authorized.
688 688  
689 -1.1.1.1 /wikis/{wikiName}/classes/{className}/properties
690 -* *HTTP Method:* GET
691 -** *Media types:*
744 +==== /wikis/{wikiName}/classes/{className}/properties ====
745 +
746 +* **HTTP Method:** GET
747 +** **Media types:**
692 692  *** application/xml (Properties element)
693 -** *Description:* The properties of the class {className}.
694 -** *Status codes:*
749 +** **Description:** The properties of the class {className}.
750 +** **Status codes:**
695 695  *** 200: If the request was successful.
696 696  *** 401: If the user is not authorized.
697 697  
698 -1.1.1.1 /wikis/{wikiName}/classes/{className}/properties/{property}
699 -* *HTTP Method:* GET
700 -** *Media types:*
754 +==== /wikis/{wikiName}/classes/{className}/properties/{property} ====
755 +
756 +* **HTTP Method:** GET
757 +** **Media types:**
701 701  *** application/xml (Property element)
702 -** *Description:* The property {property} of the class {className}.
703 -** *Status codes:*
759 +** **Description:** The property {property} of the class {className}.
760 +** **Status codes:**
704 704  *** 200: If the request was successful.
705 705  *** 401: If the user is not authorized.
706 706  
707 -1.1.1 Other resources
764 +=== Other resources ===
708 708  
709 -1.1.1.1 /wikis/{wikiName}/modifications\[?start=offset&number=n&timestamp=t\]
710 -* *HTTP Method:* GET
711 -** *Media types:*
766 +==== /wikis/{wikiName}/modifications[[?start=offset&number=n&timestamp=t]] ====
767 +
768 +* **HTTP Method:** GET
769 +** **Media types:**
712 712  *** application/xml (Modifications element)
713 -** *Description:* The list of the latest modification made to the wiki {wikiName} starting from time t (t is expressed in milliseconds from 1970 of the starting date)
714 -** *Status codes:*
771 +** **Description:** The list of the latest modification made to the wiki {wikiName} starting from time t (t is expressed in milliseconds from 1970 of the starting date)
772 +** **Status codes:**
715 715  *** 200: If the request was successful.
716 716  *** 401: If the user is not authorized.

Get Connected