Hi Fabio and Thomas,
Thanks a lot.
I took some time to look at how to produce XML output in Xwiki REST API.
The job of marshaling Java object to XML is done by
restlet.ext.JAXBProvider via Restlet 1.1.10.
|@Provider
@Consumes("application/xml")
@Produces("application/xml")
class JAXBProvider extends AbstractProvider|
Similarly, our HTMLProvider can also be devised if we want to provide a
HTML output.
|@Provider
@Produces("text/html")
class HTMLProvider extends AbstractProvider|
As discussed earlier, another issue is about html page's format and content.
An easy way would be to transform XML to html page via XSLT.
I also checked the current version of Restlet (2.0.7 stable). They added
Representation class in v2.0 and plan to add Representation
transformation (i.e., XML -> HTML) in version v2.2 via XSLT. see
http://wiki.restlet.org/developers/175-restlet.html
Therefore, I think XSLT approach might work for plain html.
Take a simple page as an example,
|<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<page xmlns="http://www.xwiki.org">
<title>New title</title>
<content>New content</content>
</page>|
What would be the output of html page?
|<html>
<H1>Page<H1>
<p>namespace: http://www.xwiki.org</p>
<p>title: New title</p>
<p>content: New content</p>
</html>
|
Best regards
Jun Han
On 5/17/2011 5:29 AM, Fabio Mancinelli wrote:
> Hi Jun
>
> On Tue, May 17, 2011 at 9:16 AM, Jun Han<[email protected]> wrote:
>> Dear all,
>>
>> Regarding REST API for XWiki,
>> Source codes are in
>> xwiki-trunk/xwiki-platform/xwiki-platform-core/xwiki-platform-rest.
>> Test codes are in
>> xwiki-trunk/xwiki-enterprise/xwiki-enterprise-test/xwiki-enterprise-test-rest.
>> I hope I am looking at the correct places.
>>
> Correct.
>
>> XWiki-5820 is related to adding an endpoint for providing a rendered
>> version of the page.
>> Does REST API need to invoke xwiki-rendering library in order to render
>> the html content?
>>
> There are several getRenderedContent() methods in the Document
> class... It should be enough to call them.
>
>> The current implementation will return various resources, (e.g., pages,
>> tags, attachments), and produce XML responses in most cases.
>> In XWiki-5820, only page resources will be rendered, right?
>>
>> A straight-forward way may be to add additional end point (getPage and
>> getPageInHTML), and they will be invoked according to different Accept
>> http headers.
>>
>> It would be great that an example can be given to show the expected
>> input and output.
>>
> Actually this is a good question...
>
> The original purpose of this resource was to provide a rendered
> version of a page (typically in HTML).
> Now, provided that we render in HTML, how this HTML should be returned?
>
> If we render with the complete skin we would end up with the same
> content already available from http://.../xwiki/bin/view/Space/Page
> So the idea was to return the "bare HTML" that could be emdedded in
> other contexts.
>
> For the input we can consider Accept headers and media parameters
> (already handled by the backend)
>
> Thanks,
> Fabio
>
>> Best regards
>> Jun Han
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs