云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

数据库服务器_数据库自定义函数_最新活动

小七 141 0

sql数据库_租用_云主机可以放几个网站

阅读本博客后,您将能够解决在CAP项目中使用odatav2外部web服务时出现的日期格式序列化问题。该解决方案是通用的,大数据中心,适用于Date或DateTime(Offset)类型的所有属性,无论属性的名称如何。

如果您是CAP中远程服务的新手,我建议您阅读Jhodel Cailan的这一优秀博客系列或DJ Adams的handsonsapdev第72集。

以最简单的形式,个人云服务器家用搭建,您可以在cap项目中使用外部服务,并将传入的OData查询转发到远程服务:

在OData v4旁边,cds还支持OData v2提供外部服务。我很快就明白了混合使用这两个版本不是即插即用的。我在CAP项目中的SuccessFactors中为用户实体实现了一个外部服务,当我第一次注意到序列化问题时,

我必须研究OData版本之间的具体差异,以了解下一步要做什么。odatav2将其日期格式化为类似JavaScript的epoch格式,而odatav4将日期格式化为ISO-8601标准(YYYY-MM)-直径:mm:不锈钢sssZ).

目前,cds不负责v2和v4日期格式之间的转换。Olena Timrova已经通知我,高返利页游,自动转换已经在路线图上了,云主机服务器,但不知道何时实现。

为了解决这个问题,我必须确保在读取数据时返回OData v4兼容的值,并在向外部OData v2服务写回更改时提供OData v2日期格式。我提出了以下通用方法,大数据的前景,可用于任何实体。

读取

实体中的所有实体或entityset I循环其所有属性。任何与OData v2日期(时间)值的格式匹配的属性值都会被识别,然后我会检查已定义的CSN类型并决定需要哪种转换。

对于转换,我使用JavaScript eval语句,该语句将获取任何字符串并将其作为JavaScript代码执行。必须非常小心,因为这可能是一个安全漏洞,但是因为我事先检查了严格的JavaScript epoch-Date语法,所以我不认为这可以被利用(如果你不这么认为,请在注释中告诉我)。

为实体中的所有类型的条目编写

CD.日期或者cds.DateTime文件我将数据转换为"/日期()/"格式,然后提交给odatav2服务。

我展示的解决方案将用于创建、读取和更新。对于date或datetime类型的属性,还需要其他自定义逻辑来支持$filter。在将来,odatav2和v4之间的日期格式转换的自定义逻辑将被淘汰(一旦cds自己处理掉)。在此之前,可以使用本文中所示的自定义实现在服务实现级别上解决这个问题。