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