Hi,
I'm stuck with the above topic.
What I have sofar:
1. With the essentials app I was able to setup a plain REST Api endpoint end it works fine with it's generated sample:
package com.cit_group.ac.cobra.rest.plain;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import org.onehippo.cms7.essentials.components.paging.Pageable;
import org.onehippo.cms7.essentials.components.rest.BaseRestResource;
import org.onehippo.cms7.essentials.components.rest.ctx.DefaultRestContext;
import com.cit_group.ac.cobra.beans.ContentDocument;
/**
* @version "$Id$"
*/
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.APPLICATION_FORM_URLENCODED})
@Path("/ContentDocument/")
public class ContentDocumentResource extends BaseRestResource {
@GET
@Path("/")
public Pageable<ContentDocument> index(@Context HttpServletRequest request) {
return findBeans(new DefaultRestContext(this, request), ContentDocument.class);
}
@GET
@Path("/page/{page}")
public Pageable<ContentDocument> page(@Context HttpServletRequest request, @PathParam("page") int page) {
return findBeans(new DefaultRestContext(this, request, page, DefaultRestContext.PAGE_SIZE), ContentDocument.class);
}
@GET
@Path("/page/{page}/{pageSize}")
public Pageable<ContentDocument> pageForSize(@Context HttpServletRequest request, @PathParam("page") int page, @PathParam("pageSize") int pageSize) {
return findBeans(new DefaultRestContext(this, request, page, pageSize), ContentDocument.class);
}
}
I also did follow this tutorial for the context aware rest endpoint for setting up the mountpoint:
My hosts.xml looks like this:
<sv:node sv:name="restapi">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>hst:mount</sv:value>
</sv:property>
<sv:property sv:name="hst:alias" sv:type="String">
<sv:value>restapi</sv:value>
</sv:property>
<sv:property sv:name="hst:isSite" sv:type="Boolean">
<sv:value>false</sv:value>
</sv:property>
<sv:property sv:name="hst:ismapped" sv:type="Boolean">
<sv:value>false</sv:value>
</sv:property>
<sv:property sv:name="hst:namedpipeline" sv:type="String">
<sv:value>JaxrsRestPlainPipeline</sv:value>
</sv:property>
<sv:property sv:name="hst:types" sv:type="String" sv:multiple="true">
<sv:value>rest</sv:value>
</sv:property>
</sv:node>
<sv:node sv:name="contentrestapi">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>hst:mount</sv:value>
</sv:property>
<sv:property sv:name="hst:alias" sv:type="String">
<sv:value>contentrestapi</sv:value>
</sv:property>
<sv:property sv:name="hst:isSite" sv:type="Boolean">
<sv:value>false</sv:value>
</sv:property>
<sv:property sv:name="hst:ismapped" sv:type="Boolean">
<sv:value>true</sv:value>
</sv:property>
<sv:property sv:name="hst:namedpipeline" sv:type="String">
<sv:value>JaxrsRestContentPipeline</sv:value>
</sv:property>
<sv:property sv:name="hst:types" sv:type="String" sv:multiple="true">
<sv:value>rest</sv:value>
</sv:property>
</sv:node>
My question would be how can I implement the same method as above just using the context aware endpoint?