2015-02-23 4 views
0

Я хочу проверить поле даты в Apigee и поднять ошибку, если дата не имеет определенного формата.Как проверить поле даты в Apigee Edge

Пример: Я хочу передать дату и проверить, соответствует ли дата данного формата «мм/дд/гггг». Если дата не соответствует этому формату, мне нужно поднять ошибку.

ответ

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 
    } 
} 

Теперь, что написано, это фактически не проверять месяцев количество дней или високосные годы или что-нибудь фантазии. Если вам это нужно точно, я бы рекомендовал использовать Moment.js как included resource в выноске javascript.

Имейте в виду, что это быстро написанный пример, и он недостаточно прочен, чтобы обрабатывать ассортимент плохих входов. Я бы рекомендовал использовать блок try/catch по крайней мере.

+1

Это помогает. Постарайтесь реализовать этот путь. – ZZzzZZzz

+1

Как вызвать raise fault в инструкции else в этом java-скрипте? Любая помощь. – ZZzzZZzz

+1

@user вы можете использовать JavaScript-контекст, чтобы установить HTTP-код, чтобы сказать 400, а затем выполнить шаг восстановления условного рейза, который выполняется только в том случае, если код! = 200. – brandonscript

 Смежные вопросы

  • Нет связанных вопросов^_^