Graphql 工作实践
Posted 喵喵7781
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Graphql 工作实践相关的知识,希望对你有一定的参考价值。
前段时间,我们前后端引入了 Graphql , 替换了 rest 请求, 主要为了满足更加灵活的查询需求,更加方便自然的把 k8s 和后端接口更好的组织起来。Graphql把业务领域通过定义 schema 建模成一张图,在 schema 里,定义不同类型的节点以及它们之间的连接,创建了类似面向对象编程的模式。
印象深刻的几方面:
- 先定义接口, 参数,返回值,再进行接口的编写,通过 schema ,在测试 dataFetcher 的时候,可以对字段存在进行校验
- 获取结果字段灵活,可以随意增减。可以分步加载局部数据,不被加载的数据不会触发查询,减少性能损耗
- 参数的继承比较丑陋,返回值的继承还好
- dataloader 解决查询 n+1 的问题
- rest 和 graphql 共用 applicationService, param 的校验需要转移到 applicationService 层,通过注解的方式,避免重复代码
- 异常处理,抛出的异常跟之前不同,格式也不尽相同,需要重写原来的异常处理逻辑
参考资料:官网的资料很详细,文档也比较齐全,具体问题解决参考 stackoverflow 会好一些
以上是关于Graphql 工作实践的主要内容,如果未能解决你的问题,请参考以下文章