如何验证 Apigee Edge 中的日期字段

How to Validate date field in Apigee Edge

我想验证 Apigee 中的日期字段并在日期不是特定格式时引发错误。

示例:我想传递一个日期并检查日期是否为给定格式"mm/dd/yyyy"。如果日期不是这种格式我需要提出错误。

为此,您需要使用脚本标注。为简单起见,我建议使用 javascript。假设您已经使用 ExtractVariables 策略提取了日期,一个简单的验证可能如下所示:

var date = context.getVariable("date").split("/");
date.map(function(d) { return parseInt(d) });
if (date.length < 3) {
    // raise fault
} else {
    if (date[0] >= 1 && date[0] <= 12 &&
        date[1] >= 1 && date[1] <= 31 &&
        date[0] >= 1970 && date[0] <= 3000) {
        // probably a good date
    } else {
        //raise fault
    }
}

现在,写到这里,它实际上并没有验证月份到天数或闰年或任何奇特的东西。如果您需要精确定位,我建议在 javascript 标注上使用 Moment.js as an included resource

还要记住,这是一个快速编写的示例,不够健壮,无法处理各种错误的输入。我建议至少使用 try/catch 块。