2015-02-23 15 views
0

我想驗證Apigee中的日期字段,並在日期不是特定格式時引發錯誤。如何驗證Apigee Edge中的日期字段

例如:我想傳遞一個日期並檢查日期是否爲給定格式「mm/dd/yyyy」。如果日期不是這種格式,我需要提出錯誤。

回答

2

爲此,您需要使用腳本標註。爲了簡單起見,我推薦使用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作爲included resource

請記住,這是一個快速編寫的示例,並且不夠穩健,無法處理各種不良輸入。我建議至少使用try/catch塊。

+1

這有幫助。將盡力實施這種方式。 – ZZzzZZzz 2015-02-23 16:50:57

+1

如何在這個java腳本的else語句中調用raise fault?任何幫助。 – ZZzzZZzz 2015-02-23 17:03:28

+1

@user您可以使用JavaScript上下文將HTTP代碼設置爲400,然後執行僅在代碼!= 200時才執行的有條件提升錯誤步驟。 – brandonscript 2015-02-23 17:25:35