I want to set up some basic REST services for my XPage application. So I added the xe:restService control on an xpage and choose the xe:customRestService where I refer to a Java class:
<xe:restService id="restService1" pathInfo="json" state="false"><xe:this.service><xe:customRestService contentType="application/json" serviceBean="se.banking.desk.CustomSearchHelper"></xe:customRestService></xe:this.service></xe:restService>
The CustomSearchHelper class it self is still pretty empty but I am wondering if I am on the right track?
Here is the code for the class:
package se.banking.desk;import java.io.IOException;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.ibm.domino.services.ServiceException;import com.ibm.domino.services.rest.RestServiceEngine;import com.ibm.xsp.extlib.component.rest.CustomService;import com.ibm.xsp.extlib.component.rest.CustomServiceBean;public class CustomSearchHelper extends CustomServiceBean { @Override public void renderService(CustomService service, RestServiceEngine engine) throws ServiceException { HttpServletRequest request = engine.getHttpRequest(); String method = request.getMethod(); HttpServletResponse response = engine.getHttpResponse(); response.setHeader("Content-Type", "text/javascript; charset=UTF-8"); if(method.equals("GET")){ this.get(engine); } else if(method.equals("POST")){ this.post(engine,request); } else{ this.other(engine); } } public void get(RestServiceEngine engine){ HttpServletResponse response = engine.getHttpResponse(); try { response.getWriter().write("get()"); response.getWriter().close(); return; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void post(RestServiceEngine engine,HttpServletRequest request){ HttpServletResponse response = engine.getHttpResponse(); Map parameters = request.getParameterMap(); try { response.getWriter().write("post()"); response.getWriter().write( request.getParameter("form")); String[] form = (String[])parameters.get("form"); String val = form[0]; response.getWriter().write(val); response.getWriter().close(); } catch (Exception e) { // TODO: handle exception } } public void other(RestServiceEngine engine){ HttpServletResponse response = engine.getHttpResponse(); try { response.getWriter().write("other()"); response.getWriter().close(); return; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
Questions I have: Is this a good way to write a custom REST service? Are there alternatives? Where can I find more examples/information that start at the starter level?