graphikDB/trigger 的定位点是一个trigger 框架,支持基于表达式的数据处理,一般的场景
场景
- 规则引擎&&认证中间件
- 数据提交之前的 database 或者api trigger
- 搜索引擎(基于决策的过滤)
简单使用
package main
import (
"fmt"
"github.com/graphikDB/trigger"
)
func main() {
decision, err := trigger.NewDecision("this.email.endsWith('acme.com')")
if err != nil {
fmt.Println(err.Error())
return
}
err = decision.Eval(map[string]interface{}{
"email": "bob@gmail.com",
})
fmt.Println(err == trigger.ErrDecisionDenied)
}
参考资料
https://github.com/graphikDB/trigger
https://graphikdb.github.io/trigger/
https://github.com/google/cel-spec/blob/master/doc/langdef.md#overview