On 9 Mar 2010, at 13:29, Raido Kuli wrote:

Hi.

Should there be Python version of framework too ? In any other
programming language (ruby or something) ?


I think the simple answer is, the more the merrier!

Python definitely, Ruby yep... hmm Objective-C? C#?

I recently took up learning Python (for simple applications) and even
did some framework coding for Wookie, just to get a hang of Python.

Current version can get list of available widgets and get/create
widget instances and return instance object.


--
Raido



On Sun, Mar 7, 2010 at 9:14 PM, Scott Wilson
<[email protected]> wrote:

On 7 Mar 2010, at 18:58, Raido Kuli wrote:

Hi.

I've got deleting participants/properties working. I had some errors
with my request.

Now I am curious why does propeties request ->

DELETE {wookie}/properties {params: instance_params, propertyname}

<- create new property in database, if it doesn't exist.

So -> i create request like (from the php framework i am working on):

$request = '?api_key='.$this->getConnection()->getApiKey();
$request .= '&shareddatakey='.$this->getConnection()- >getSharedDataKey();
$request .= '&userid='.$this->getUser()->getLoginName();
$request .= '&widgetid='.$widgetInstance->getIdentifier();
$request .= '&propertyname='.$propertyInstance->getName();

So if, in the first request propertyname doesn't exist, Wookie returns
'404 not found' BUT creates property, with value 'NULL'. On second
request the same property is correctly deleted.

Obviously it should not do that, just return 404.

It certainly shouldn't! Can you create an issue for this in the tracker?


--
Raido




On Thu, Mar 4, 2010 at 9:30 AM, Raido Kuli <[email protected]> wrote:

Hi!

I am trying to implement DELETE for participants and properties in PHP
framework. But request returns 401 Unauthorized.

DELETE {wookie}/properties {params: instance_params, propertyname}

This time widgetid param is definetly http://somewidget.com/ or does
this one need identifier hash from Widget instance ?

How could i easly debug Wookie with eclipse or something. I'm not very
familiar with Log4j.

Add/modify participants/properties work nice :)

--
Raido




On Tue, Mar 2, 2010 at 7:30 PM, Scott Wilson
<[email protected]> wrote:

On 2 Mar 2010, at 16:33, Ross Gardler wrote:

On 02/03/2010 13:40, Raido Kuli wrote:

I got it going.My problem, was for both cases, wrong widgetid parameter
value.

I made that mistake a few times. I think they are confusingly named.
There
are a number of "id" parameters, the use of each is not very obvious and
I
didn't find the javadocs to be a great deal of help.

This is another area I think we can improve the code a fair bit. It
always
takes new eyes like ours to uncover these kinds of issues, those working with the code for any length of time will have the different IDs etched
into
their minds.

Yes, it makes sense inside Wookie, but how these are exposed in the representations of Widget and WidgetInstance in XML doesn't really help.
Here's a widget:

<?xml version="1.0" encoding="UTF-8"?>
<widgets>
<widget id="3" identifier="http://www.getwookie.org/widgets/todo "
width="320" height="460" version="">
             <title short="">Ta-Da!</title>
             <description>A shared to-do list widget</description>

<icon>http://localhost:8080/wookie/wservices/www.getwookie.org/widgets/todo/icon.png </icon>
             <author>Apache Wookie (Incubating) Team</author>
     </widget>
</widgets>

As you can see there is:
widget.id = the internal id used for the widget (i.e. its database key)
widget.identifier = the external IRI used to globally identify the
widget.
(In the code this is sometimes called the widget guid. In W3C Widgets
this
is called the widget id attribute).
A request for information about the widget uses widget.id, e.g.
GET /wookie/widgets/3
A request for a new widget instance uses widget identifier, e.g.
POST /wookie/widgetinstances
api_key=TEST
userid=test
shareddatakey=test
widgetid=http://www.getwookie.org/widgets/todo
Here's a widget instance:

<?xml version="1.0" encoding="UTF-8"?>

<widgetdata>


<url>http://localhost:8080/wookie/wservices/www.getwookie.org/widgets/todo/index.html?idkey=ELrI91u2Oi.sl.A1Yt9NqOBDkbfoB4.eq.&amp;proxy=http://localhost:8080/wookie/proxy&amp;st=wookie%3A89wrKZFnvFSyAOQbsc%2B7JSYgexSEgUxKBGCajZffBt1zGQchTpFpoyLga7wcN6agQzTXiz8JoE4RDciuBPFyG2%2FPXjk%2BC7Xdgeps2btrVPpZ4%2FvrGLuYdhQ1GXsQ7680QaKE6WNXs2eMYaRfm7PZVZxU9otmA%2BR%2BE1Y5BpnF3Pg0N6fB1PUmIfVPO4281uE23r8kgw%3D%3D </url>
   <identifier>ELrI91u2Oi.sl.A1Yt9NqOBDkbfoB4.eq.</identifier>
     <title>Ta-Da!</title>
     <height>460</height>
     <width>320</width>
     <maximize>false</maximize>
</widgetdata>

widgetinstance.identifier = the hash of the widget instance composite
key
(same as idkey param in widgetinstance.url)
So not very consistent unfortunately.
The representations of all objects are created by classes in the
org.apache.wookie.helper package - you could also extend these, for
example,
to produce alternate representations using JSON as well as XML, and to
tweak
the output to be more consistent and obvious.



Ross






Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to