Author: scottbw
Date: Thu May 26 14:23:07 2011
New Revision: 1127933

URL: http://svn.apache.org/viewvc?rev=1127933&view=rev
Log:
Added API reference page

Added:
    incubator/wookie/site/trunk/content/wookie/docs/api.mdtext   (with props)

Added: incubator/wookie/site/trunk/content/wookie/docs/api.mdtext
URL: 
http://svn.apache.org/viewvc/incubator/wookie/site/trunk/content/wookie/docs/api.mdtext?rev=1127933&view=auto
==============================================================================
--- incubator/wookie/site/trunk/content/wookie/docs/api.mdtext (added)
+++ incubator/wookie/site/trunk/content/wookie/docs/api.mdtext Thu May 26 
14:23:07 2011
@@ -0,0 +1,195 @@
+Title: API Reference
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+# API key
+
+Note that except where noted, all methods require the requesting application 
to have a valid API key issued by the Wookie server administrator.
+
+
+# Widget Instances
+An instance is identified using a combination of the following parameters:
+
+- api_key: The key issued to a particular application
+- shareddatakey: The key generated by an application representing a specific 
context (e.g. a page, post, section, group or other identified context)
+- userid: An identifier (typically a hash rather than a real user Id) issued 
by an application representing the current viewer of the widget instance
+- widgetid: The URI of the widget this is an instance of (optional, see 
servicetype below)
+- servicetype: Where an individual widget is not requested by URI as above, 
this parameter should contain the category of widget to be instantiated, e.g. 
"chat"
+- locale: The preferred locale of the widget, expressed using a BCP47 Language 
Tag
+
+##Representation 
+
+An instance is represented in XML as follows:
+
+      <widgetdata>     
+            <url>URL TO ACCESS WIDGET</url>
+            <identifier>IH6rjs75tkb6I.pl.k0hUq7YdnFcjw.eq.</identifier>
+            <title>Weather</title> 
+            <height>125</height> 
+            <width>125</width> 
+      </widgetdata>    
+
+<table border="1">
+<tr>
+  <th>Request</th>
+   <th>Description</th>
+</tr>
+       
+<tr>
+ <td>GET {wookie}/widgetinstances</td> 
+ <td>Not supported.</td>
+</tr>
+
+<tr>
+ <td>POST {wookie}/widgetinstances {params:instance_params}</td>
+<td>
+Either creates a new instance for the given parameters, or retrieves an 
already-created instance. If a new instance is successfully created, the 
response has a HTTP status code of 201; if an instance if successfully 
retrieved, a status code of 200 is returned.
+</td>
+</tr>
+
+<tr>
+  <td>PUT {wookie}/widgetinstances {params:instance_params, action, 
[cloneshareddatakey]}</td>
+   <td>Either stop, resume, or clone an instance, depending on the content of 
the action parameter. If the action is "clone", a shared data key for the clone 
must be provided using the "cloneshareddatakey" parameter.</td>
+</tr>
+</table>
+
+# Widgets
+
+
+<table border="1"><tbody>
+<tr>
+<th >Request</th>
+<th >Description</th>
+</tr>
+<tr>
+<td > GET {wookie}/widgets{?all=true, locale=<em>language_tag</em>} </td>
+<td > Returns an XML representation of the set of available widgets. Note that 
this does not require an API key. If the "all=true" parameter is omitted, the 
list only contains the default widgets for defined service types. If a locale 
is specified, the returned information is localized, for example widget titles, 
descriptions, license information will be in the specified language where 
available.</td>
+</tr>
+<tr>
+<td > GET {wookie}/widgets/{service_name} {?locale=<em>language_tag</em>} </td>
+<td > Returns an XML representation of the set of widgets that belong to the 
given <em>service_name</em>. For example, all widgets categorized as "weather". 
(See issue WOOKIE-10). If a locale is specified, the returned information is 
localized, for example widget titles, descriptions, license information will be 
in the specified language where available. </td>
+</tr>
+<tr>
+<td > GET {wookie}/widgets/{id} {?locale=<em>language_tag</em>}</td>
+<td > Returns an XML representation of the widget with the specified 
<em>id</em>. Note that in the current release this is the actual database key; 
future releases should implement this using the widget URI as the <em>id</em>. 
If a locale is specified, the returned information is localized, for example 
widget titles, descriptions, license information will be in the specified 
language where available.</td>
+</tr>
+</tbody></table>
+
+
+#Services
+
+<table border="1"><tbody>
+<tr>
+<th >Request</th>
+<th >Description</th>
+</tr>
+<tr>
+<td > GET {wookie}/services {?locale=<em>language_tag</em>}</td>
+<td > Returns an XML document containing all services and any widgets 
associated with the service category. If a locale is specified, the returned 
information is localized, for example widget titles, descriptions, license 
information will be in the specified language where available.</td>
+</tr>
+<tr>
+<td > GET {wookie}/services/{service_name} {?locale=<em>language_tag</em>}</td>
+<td > Returns an XML representation of the service specified by 
<em>service_name</em> and all the widgets associated with it. If a locale is 
specified, the returned information is localized, for example widget titles, 
descriptions, license information will be in the specified language where 
available.</td>
+</tr>
+<tr>
+<td > POST {wookie}/services/  {param:name} </td>
+<td > Creates a new service with the name provided using the <em>name</em> 
parameter. If there is already a service with this name, a http 409 (conflict) 
error is returned. This method requires authentication using a widgetadmin 
role, e.g. using HTTP Basic authentication.</td>
+</tr>
+<tr>
+<td > PUT {wookie}/services/{service_name}  {param:name} </td>
+<td > Renames the service specified by <em>service_name</em> with the new name 
given by the <em>name</em> parameter. This method requires authentication using 
a widgetadmin role, e.g. using HTTP Basic authentication.</td>
+</tr>
+<tr>
+<td > DELETE {wookie}/services/{service_name} </td>
+<td > Deletes the service specified by <em>service_name</em>. This method 
requires authentication using a widgetadmin role, e.g. using HTTP Basic 
authentication.</td>
+</tr>
+</tbody></table>
+
+
+#Participants
+
+A Participant consists of a <em>participant_display_name</em>, 
<em>participant_id</em>, and <em>participant_thumbnail_url</em>. Participants 
are always defined in relation to a specific Widget Instance; requests 
affecting one Participant have no effect on Participants associated with other 
Widget Instances.
+
+##Representation
+
+Participants are represented in XML as a &lt;participants&gt; document, 
containing a &lt;participant&gt; element for each participant, with the 
attributes:
+
+- id: the participant id (not to be confused with Wookie's internal id of a 
participant)</li>
+- display_name: the participant display name</li>
+- thumbnail_url: the url of the thumbnail image for the participant</li>
+
+
+<table border="1"><tbody>
+<tr>
+<th >Request</th>
+<th >Description</th>
+</tr>
+<tr>
+<td >GET       {wookie}/participants </td>
+<td > Not supported.</td>
+</tr>
+<tr>
+<td >GET       {wookie}/participants {params: <em>instance_params</em>}</td>
+<td > Returns an XML representation of the Participants associated with the 
Widget instance specified by {instance params}.</td>
+</tr>
+<tr>
+<td >GET       {wookie}/participants {params:id_key, api_key}</td>
+<td >Returns an XML representation of the Participants associated with the 
Widget instance specified by {id_key}.</td>
+</tr>
+<tr>
+<td >POST {wookie}participants {params: <em>instance_params</em>, 
participant_id, participant_display_name, participant_thumbnail_url}</td>
+<td >Adds a participant to the specified Widget Instance. If successful, a 
HTTP status code of 201 is returned. If there is already a participant that 
matches {participant params} for the instance, a HTTP status code of 200 is 
returned.</td>
+</tr>
+<tr>
+<td >DELETE {wookie}/participants {params: <em>instance_params</em>, 
participant_id}</td>
+<td >Deletes the specified Participant from the specified Widget Instance.</td>
+</tr>
+</tbody></table>
+
+
+#Properties
+
+The Properties API contains methods for both Preferences (properties affecting 
a single Widget Instance) and Shared Data (properties affecting sibling 
Widgets).
+
+A property consists of a <em>propertyname</em> and <em>propertyvalue</em>.
+
+<table border="1"><tbody>
+<tr>
+<th >Request</th>
+<th >Description</th>
+</tr>
+<tr>
+<td >GET {wookie}/properties</td>
+<td >Not supported.</td>
+</tr>
+<tr>
+<td >GET       {wookie}/properties {params: <em>instance_params</em>, 
propertyname}</td>
+<td >Returns the value of the specified property for the specified 
instance.</td>
+</tr>
+<tr>
+<td >POST {wookie}/properties {params: <em>instance_params</em>, propertyname, 
propertyvalue, [is_public=true]}</td>
+<td >Sets a property for the specified instance. If is_public=true is set, the 
property set is a Shared Data entry; otherwise it is a Preference.</td>
+</tr>
+<tr>
+<td >PUT       {wookie}/properties {params: <em>instance_params</em>, 
propertyname, propertyvalue}</td>
+<td >Updates the value of the specified property of the specified Widget 
Instance.</td>
+</tr>
+<tr>
+<td >DELETE {wookie}/properties {params: <em>instance_params</em>, 
propertyname}</td>
+<td >Deletes a property. This method returns a 404 status code if there is no 
matching property. </td>
+</tr>
+</tbody></table>

Propchange: incubator/wookie/site/trunk/content/wookie/docs/api.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to