[xwiki-devs] GSOC idea: RESTful XWiki
Vincent Massol
vincent at massol.net
Wed Mar 5 10:11:25 CET 2008
On Mar 5, 2008, at 9:59 AM, Fabio Mancinelli wrote:
>
> On 4 mars 08, at 16:23, Sergiu Dumitriu wrote:
>
>>>>
>>> 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! :)
>>
>> No, I would say that we'd rather have REST at this point as it has
>> more
>> direct benefits than SOAP, since REST does not need special tools to
>> be
>> used by simple users, while SOAP is mostly for machines.
>>
>> But I think that this project should not be done this way. It will
>> mean
>> that we'll have the application login in 4 places (struts, xmlrpc,
>> gwt,
>> reast). I'd rather we created a distinct application logic layer
>> which
>> can be used by all these communication interfaces (this is what they
>> are, communication interfaces, and they should not contain logic).
>> If we
>> do this, then adding a SOAP protocol would be as simple as creating
>> the
>> listeners and the bridge to the application logic (2 weeks of work at
>> most?). And it will be a little easier to update all the protocols
>> at once.
>
> Not sure of understanding what you say here.
> The XMLRPC login already uses, for example, the
> xwiki.getAuthService().authenticate method.
> Isn't this already the application logic layer you are talking about?
> Why do you need another?
What I'd like to see is a common description of APIs in a language
neutral format (like XML) and then have generators (build time or
runtime) that generate the bridge layer for the different technology
(REST, XMLRPC, SOAP, etc).
This is what Modello does: http://modello.codehaus.org/
Here's for example Maven's data model in XML:
http://svn.apache.org/viewvc/maven/components/trunk/maven-model/src/main/mdo/maven.mdo?view=log
I've found some old email I sent on this list. Here's an extract:
"
* I think it would be a good idea to have our model defined
independently of the language (for example in XML - Here's for example
the Maven model defined in xml:
http://svn.apache.org/repos/asf/maven/components/trunk/maven-model/src/main/mdo/maven.mdo
The reason is that this will allow us to generate lots of things from
this model:
- Java bindings
- XSD
- Documentation
- Any other language bindings
- etc
We could use Modello for doing this. It's well integrated into Maven2
and is easy to use.
"
This allows having a single API definition and then generate bindings
for anything and everything. Easier maintenance, consistency, etc.
Thanks
-Vincent
> In the REST approach we would call this very same method in order to
> authenticate a request on a URI
> that is "protected", for example a PUT on a http://site/space/page.
>
> But maybe I have misunderstood something.
>
> Anyway, what is done in the "backend" doesn't prevent the fact that
> you must
> expose a URI space for addressing xwiki resources. This URI space
> engineering is the first step and doesn't involve implementation
> details [1].
>
>> Also, this should be done in the new component-based architecture.
>>
> Of course.
> But I was not talking about implementation details in my previous
> email.
>
>> How's that for a nice SoC project?
>>
> Actually I have a problem with another project proposal...
>
> I think there is some overlapping between the WebDAV and RESTful XWiki
> proposal because the description in http://dev.xwiki.org/xwiki/bin/view/Design/WebDAVService
> is exactly what I called "resource namespace engineering" in a
> previous message, and it's an integral part (actually it is the
> foundation) of the RESTful XWiki proposal.
>
> In fact for the RESTful XWiki we need a "view" of the XWiki system in
> order to make XWiki elements addressable through URIs that can be
> referenced by HTTP methods GET, PUT, POST, DELETE and, in case, by
> WebDAV methods PROPPATCH, PROPFIND, MKCOL, COPY, MOVE, LOCK, UNLOCK.
> Whenever a method is applicable, of course.
>
> So maybe the WebDAV and RESTful XWiki are actually the *same*
> proposal.
>
> WDYT?
>
> Cheers,
> Fabio
>
> [1] http://www.infoq.com/articles/rest-introduction
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xwiki.org/pipermail/devs/attachments/20080305/83272354/attachment-0001.htm
More information about the devs
mailing list