Я использую этот код для создания моей собственной службы REST для получения документов из специального вида или одного документа с помощью встроенных в Domino DAS сервисов ExtLib.Как использовать RestDocumentJsonService с POST/PATCH/DELETE?
package no.kjeilen.das.services;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.ibm.domino.services.ServiceEngine;
import com.ibm.domino.services.rest.das.document.RestDocumentJsonService;
import com.ibm.domino.services.rest.das.document.impl.DefaultDocumentParameters;
import com.ibm.domino.services.rest.das.view.RestViewJsonService;
import com.ibm.domino.services.rest.das.view.impl.DefaultViewParameters;
public class ArticlesViewService implements com.ibm.xsp.extlib.services.servlet.ServiceFactory{
public ServiceEngine createEngine(HttpServletRequest httpRequest,
HttpServletResponse httpResponse) throws ServletException {
String pathinfo = httpRequest.getPathInfo();
String action = pathinfo.substring(pathinfo.lastIndexOf("/")+1);
if(action.equals("all")){
DefaultViewParameters p = new DefaultViewParameters();
p.setViewName("articlesAll");
p.setGlobalValues(DefaultViewParameters.GLOBAL_ALL);
p.setSystemColumns(DefaultViewParameters.SYSCOL_ALL);
p.setDefaultColumns(true);
p.setStart(0);
p.setCount(Integer.MAX_VALUE);
return new RestViewJsonService(httpRequest, httpResponse, p);
}else{
DefaultDocumentParameters p = new DefaultDocumentParameters();
p.setSystemItems(DefaultDocumentParameters.SYS_ITEM_ALL);
p.setGlobalValues(DefaultDocumentParameters.GLOBAL_ALL);
p.setDefaultItems(true);
p.setDocumentUnid(action);
return new RestDocumentJsonService(httpRequest,httpResponse,p);
}
}
}
Я тогда этот класс для обработки маршрутизации сервлета:
package no.kjeilen.das.services;
import com.ibm.xsp.extlib.services.servlet.DefaultServiceFactory;
import com.ibm.xsp.extlib.services.servlet.DefaultServletFactory;
import com.ibm.xsp.extlib.services.servlet.ServiceFactory;
public class DASServletFactory extends DefaultServletFactory {
private static ServiceFactory createFactory() {
DefaultServiceFactory factory = new DefaultServiceFactory();
factory.addFactory("artikler", new ArticlesViewService());
return factory;
}
public DASServletFactory() {
super("services", "Extension Library Services Servlet", createFactory());
}
}
Это позволяет мне позвонить: HTTP: // {сервер}/{дБ}/XSP/услуги/artikler/все чтобы получить все записи в представлении через DAS или я могу позвонить: http: // {server}/{db}/xsp/services/artikler/{docUNID}, чтобы получить специальный документ через DAS.
Но, как я могу использовать/расширить этот подход, чтобы также включить поддержку POST/PATCH/DELETE?
Я не могу найти примеры на этот счет ..
Любая информация/советы/код будет весьма признателен!
С наилучшими пожеланиями, Petter Kjeilen