如何使用XPage中的休息服务(扩展库)更新文档

时间:2014-03-19 09:51:50

标签: rest xpages lotus-domino xpages-extlib xpages-ssjs

我正在尝试使用休息服务控制来更新特定文档。 我已经设置了控件(documentJsonService,pathInfo,表单名等) 我知道我必须对服务的url执行post(patch)请求,然后执行/ unid /(与使用相同的其余部分读取文档的方式相同)。

我有一个输入字段和一个按钮。我想在字段中输入值,按下按钮并使用值更新文档中的字段。我该怎么办这个请求?

1 个答案:

答案 0 :(得分:0)

这是我在worklight中使用的js函数来更新Domino中的文档:

function updateDoc(docId,newValue) {
    var identity = Base64.encode("myDominoUsername:myDominoPassword");  
    path = "/Databases/Temp/dominoApp.nsf/BestRestTest.xsp/updateService/unid/"+docId;
    var input = {
    method : 'post',
    returnedContentType : 'json',
    headers:{
        Authorization: "Basic "+"b4lzdD234GG3M6SdW1XI=" //base64 encoding of your //credentials, see above. The function Base64.encode can be found by googling about it in //js. So you replace this string with identity variable.
        "X-HTTP-Method-Override":"PATCH",
        "Content-Type":"application/json"
    },
    body: { 
         contentType: 'application/json; charset=utf-8', 
         content: JSON.stringify({"theField":newValue}) 
         },
    path : path
    };
    return WL.Server.invokeHttp(input);
}

现在在Domino方面,我添加了一个扩展库REST控件(或者你也可以使用Domino Data Service来实现)。我添加的属性是:

  • pathInfo:无论你想要什么
  • service:documentJsonService
  • computeWithForm:真
  • defaultItems:真
  • 表格名称:myformName

这只是客户端javascript,因此您可以通过类似于XPage的方式执行此操作。