Hi, On Tue, Mar 4, 2008 at 6:36 PM, Fabio Mancinelli <[EMAIL PROTECTED]> wrote:
> > On 4 mars 08, at 13:27, Asiri Rathnayake wrote: > > > First of all, I'm pretty new to this topic. But please help me clear > > some of my doubts. :) > > > > What functionality of XWiki will be exposed via the new WebService ? > > same stuff as in XMLRPC ? or more ? > > > Basically the idea is to make XWiki interoperable and addressable > using the REST architectural style principles. > > At a high level of abstraction, yes the services will be provide the > same functionalities of XMLRPC. > But in a REST oriented solution the "interface" will be the one > provided by HTTP (the 4 verbs), not a custom API like the one already > present in the XMLRPC extension. > > > And why REST and not SOAP ? > > > There is a long debate about REST vs. SOAP (the comparison here is a > bit wrong since REST is not a protocol), anyway REST and WS à la SOAP > are two ways of doing WebServices that exploit rather opposite > paradigms. So definitely I would say that we DO NOT want to do SOAP! :) > > To be concise the idea, following rest principles, is: > 1) Give every XWiki resource an ID (i.e., an URI) > 2) Make everything accessible through a uniform interface (i.e. HTTP > or WebDAV) > > This implies: > 1) Do some "resource" engineering in order to well define the URI space > 2) Think about resource representations > 3) Build the "business logic" to map the new way of accessing resources. > > Just an example for what it could look like. > > GET http://site/spaces -> gets the list of the available spaces > POST http://site/spaces [SPACEINFO] -> create a new space > DELETE htp://site/spaces/foo -> delete space foo > PUT http://site/spaces/foo [SPACEINFO] -> Update space info (like > description, etc.) > etc. > > The trick here is that you have all the relevant things directly > addressable and accessible through a uniform interface (i.e., HTTP or > WebDAV). You will be able, for example, to say something like > "GET http://site/space/page/object/field" and retrieve the value of > the field of the object associated with a given page on a given space. > Doing a PUT on that URI will set the value. > > Currently you have to do something like: > XMLRPCClient > .getSpace > ("space").getPage("page").getObject("Object").getField("field"); > > The uniform interface (HTTP) allows you also to write the previous URI > in a browser instead of compiling java code with brittle APIs :) An it > would work :) > > Of course this is only the tip of the iceberg (and of the problems :)) > > > > This can have > > some repercussions even on semantic features that Stèphane was > > proposing on the chat. > > > > Can we discuss those here as well ? :) > > > Yes :) > > The foundation of RDF and all the semantic frameworks (à la semantic > web) are the fact that "things" can be expressed and referenced > through URI. > > In RDF, in fact, triples that establish relationships between thing > are in the form > > SubjectURI PredicateURI [ObjectURI | Literal] > > To be more concrete I might say something like: > > person://fabiomancinelli http://ontology/fullname "Fabio Mancinelli" > That basically states that my name is "Fabio Mancinelli", provided > that person://fabiomancinelli is the URI that identifies the "physical > person" that's me. > > Now, by exposing XWiki resources in a RESTful way we are basically > exposing all the relevant XWiki "things" via a URI. We can use those > URI for describing semantic relationships. So we could say something > like > > http://site/space/page http://ontology/tag http://ontology/Technology > http://site/space/page http://ontology/tag http://ontology/News > > In order to state that a given page has the Technology and News tags. > > Of course I've been very concise because it's not that easy and what > I've described requires a lot of effort despite its simplicity. > > But if the engineering is done well this could result in a very > powerful extension. > > It would be nice to send an email saying: > > "Hey Asiri look at the paragraph http://site/space/page/paragraph/1 > and review it", then you do a "PUT on http://site/page/paragraph/1" > and boom, the page will be updated reflecting the changes you did with > respect to that paragraph. :) > This sounds really cool. Thanks a for the detailed explanation. :) - Asiri > > I hope that I've been clear. > I know that's a not easy topic and it has a lot of nuances. > > Feel free to ask other questions. > > > Thannks a lot. > > You are welcome. > > Cheers, > Fabio > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs >
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

