Я хочу разработать схему правил JSON и оценщик правил, где я могу определять и / или / или условия для отдельных условий для сравнения атрибутов. Например, приведенное ниже правило оценивает значение true, если customerType имеет значение PRIMARY, а языковой стандарт - en-US. Я планирую написать свой оценщик пользовательских правил в Java, который принимает правила JSON в качестве входных данных вместе с параметрами запроса и оценивает их как true или false на основе их соответствия или нет. Я сохраняю свою схему generi c и открыта для расширений. Например, если вы хотите поддерживать условие «ИЛИ» в будущем или если вы хотите поддерживать операторы типа «> =» в будущем, вы можете сделать это, расширив свой оценщик правил. Есть ли лучшие способы сделать это? Достаточно ли гибка моя схема?
"rule": {
"type": "CompositeRule",
"allOf": [ #In future, we can also support "anyOf" if required
{
"type": "SimpleRule",
"attribute": "customerType",
"operator": "==", #In future, we can also support other operators like ">=" or "<=" etc.
"value": "PRIMARY" #Value can be a number, string or boolean
},
{
"type": "SimpleRule",
"attribute": "locale",
"operator": "==",
"value": "en-US"
}
]
}