在REST服务中发布日期值不会在Domino后端创建日期字段

时间:2014-12-17 22:32:45

标签: angularjs rest xpages xpages-extlib

我在后端使用Domino创建了一个AngularJS HTML应用程序。通过DDS进行通信100%休息 当我发送日期值时,他们不会在Domino文档上转换为日期项。值始终存储为字符串 我在日期字符串上尝试了各种格式而没有运气 有谁知道这可能是Domino数据服务的可能吗? 我使用Angulars $ http服务和PATCH方法仅更新更改的值

3 个答案:

答案 0 :(得分:0)

可以使用Domino Data Services在文档中存储/更新数据。

要使其正常工作,您需要以ISO 8601 Extended格式将日期作为字符串发送。这是toISOString()函数在JavaScript中为Date对象返回的格式。在您尝试创建或更新的表单上,您需要将该字段添加为Date/Time字段。无需将computewithform参数添加到请求中。

这是一个示例JSON对象,当作为POSTPATCH请求发送到DDS时,将创建/更新LastVisit字段作为DateTime字段(假设字段在表格上。

{
  "FirstName":"Barney", 
  "LastName":"Bloomberg", 
  "LastVisit" : "2013-12-21T12:18:18Z"
}

答案 1 :(得分:0)

json字符串中的字段名称必须与表单上的完全一样 我有类似的问题,我在表单上有一个名为'TTL'的字段,但我的json由API使用类生成,该字段被命名为'ttl'。

这导致String为日期字段的值,而不是日期。

答案 2 :(得分:0)

这适用: - )

我已按以下方式扩展了我在my presentation中使用的示例:

添加了一个字段" WakeupTime"在表格上。将其设置为日期/时间,然后选择显示日期和时间。示例输出为08-01-2016 16:11:42

因此,请使用以下网址阅读示例数据:

.../json.nsf/api/data/documents/unid/33735D0BCE799E01C1257CC3007A7221

我得到这样的回复:

{
  "@href": "/demo/json.nsf/api/data/documents/unid/33735D0BCE799E01C1257CC3007A7221",
  "@unid": "33735D0BCE799E01C1257CC3007A7221",
  "@noteid": "902",
  "@created": "2014-04-23T22:17:26Z",
  "@modified": "2016-01-08T15:09:57Z",
  "@authors": [
    "Anonymous",
    "CN=John Dalsgaard/O=D-D"
  ],
  "@form": "Person",
  "Unid": "33735D0BCE799E01C1257CC3007A7221",
  "Key": "33735D0BCE799E01C1257CC3007A7221",
  "Name": "Peter Hansen",
  "Email": "ph@mail.dk",
  "YearBorn": 1955,
  "WakeupTime": "2016-08-01T05:33:10Z"
}

重要! - 这给了我需要用于WakeupTime字段的确切格式!

因此,如果我随后使用选择字段发布PATCH

{
    "Email":"peter.hansen@mail.dk",
    "YearBorn":1953,
    "WakeupTime":"2016-01-08T05:33:40Z"
}

...然后重新读取数据,然后更新字段。如果我签入Notes客户端,我可以看到该字段是日期/时间字段: - )

如果我创建一个新的条目/文档也会出现同样的情况 - 该字段仍然是正确的类型。

你必须非常清楚如何处理时区!数据以GMT传输: - )