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 PHPframework. 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 veryfamiliar 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 parametervalue.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 Ididn'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 intotheir minds. Yes, it makes sense inside Wookie, but how these are exposed in therepresentations 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 thisis 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.&proxy=http://localhost:8080/wookie/proxy&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 theorg.apache.wookie.helper package - you could also extend these, for example, to produce alternate representations using JSON as well as XML, and to tweakthe output to be more consistent and obvious. Ross
smime.p7s
Description: S/MIME cryptographic signature
