学习 GraphQL Directives
2022/8/29 6:53:05
本文主要是介绍学习 GraphQL Directives,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
GraphQL 的 directive 有点类似 typescript 的 decorator. 可以被附加在 schema 中的各个地方(通过 location 来定义可以用在哪里),如 type, field, fragment, mutation, input 等等。
其实现的基本方式,是继承特定的基类,然后实现一个自己想要的 decorator 子类,该类中通过 visitor pattern 定义了一堆 visitXXX 方法,可以在其中定义想要修改的 resolve schema 的行为。
比如,可以直接整个儿将 resolver 替换掉,或者做一些前置/后置操作等等。
directive 还可以带参数,可以通过这种方式写入一些元数据,然后在生效位置靠后的 directive 解析的时候,再使用这些元数据,以实现特定的功能。
directive 常用于修改 resolve 的结果,或者加上额外的控制等等。比如做 auth 的相关控制,或者针对结果中的 date / string 做特定的转换,等等。
参考:https://juejin.cn/post/6967605500103884808
这篇关于学习 GraphQL Directives的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升