LightHouse 自定义参数指令 (Argument Directives)
LightHouse 自定义参数指令 翻译自官网
Evaluation Order
参数生命周期
1.无害化 [Sanitize]:过滤无效、非法的输入数据。可使用 ArgSanitizerDirective
钩子进行操作
2.验证 [Validate]:确保输入结果符合预期。比如Email字段 希望输入内容是Email
3.转换 [Transform]:进一步处理输入数据。比如 hash 密码字段。可以在ArgTransformerDirective
钩子进行操作
ArgSanitizerDirective
过滤输入参数,并返回过滤后的值
ArgTransformerDirective
功能与 ArgSanitizerDirective
类似区别
-
ArgTransformerDirective
需要实现 transform 方法 -
ArgSanitizerDirective
是在验证前处理的,ArgTransformerDirective
是在验证后处理的
ArgBuilderDirective
用于通过传入的参数来创建:字段与数据库查询 的方法
例如:
ArgResolver
嵌套参数解析器。一般用于嵌套数据的解析 见:arg-resolvers
ArgManipulator
一个可以操控AST(abstract syntax tree 抽象语法数) 的解析器,通过一个参数来解析修改AST