title: basic REST service for my xpage application
body: <p>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:</p>
  
  <pre><code>&lt;xe:restService id="restService1" pathInfo="json" state="false"&gt;
          &lt;xe:this.service&gt;
              &lt;xe:customRestService contentType="application/json"
                  serviceBean="se.banking.desk.CustomSearchHelper"&gt;
              &lt;/xe:customRestService&gt;
          &lt;/xe:this.service&gt;
      &lt;/xe:restService&gt;
  </code></pre>
  
  <p>The CustomSearchHelper class it self is still pretty empty but I am wondering if I am on the right track?</p>
  
  <p>Here is the code for the class:</p>
  
  <pre><code>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();
          }
      }
  
  }
  </code></pre>
  
  <p>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?</p>