Graphql 工作实践

Posted 小豆芽2333

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Graphql 工作实践相关的知识,希望对你有一定的参考价值。

前段时间,我们前后端引入了 Graphql , 替换了 rest 请求, 主要为了满足更加灵活的查询需求,更加方便自然的把 k8s 和后端接口更好的组织起来。Graphql把业务领域通过定义 schema 建模成一张图,在 schema 里,定义不同类型的节点以及它们之间的连接,创建了类似面向对象编程的模式。

印象深刻的几方面:

  1. 先定义接口, 参数,返回值,再进行接口的编写,通过 schema ,在测试 dataFetcher 的时候,可以对字段存在进行校验
  2. 获取结果字段灵活,可以随意增减。可以分步加载局部数据,不被加载的数据不会触发查询,减少性能损耗
  3. 参数的继承比较丑陋,返回值的继承还好
  4. dataloader 解决查询 n+1 的问题
  5. rest 和 graphql 共用 applicationService, param 的校验需要转移到 applicationService 层,通过注解的方式,避免重复代码
  6. 异常处理,抛出的异常跟之前不同,格式也不尽相同,需要重写原来的异常处理逻辑

参考资料:官网的资料很详细,文档也比较齐全,具体问题解决参考 stackoverflow 会好一些

以上是关于Graphql 工作实践的主要内容,如果未能解决你的问题,请参考以下文章

Graphql 工作实践

Graphql 工作实践

Graphql 工作实践

4-consul HTTP API及实践

关于改进建议几个方面的有效实践

干货 | GraphQL 基于 SPA 架构的工程实践