title: GraphQL author: Gamehu tags:
前后端关于CMDB的交互决定选用GraphQL,因为第一次听说就抓紧时间了解了以下是个什么东西。
{% blockquote Overview http://spec.graphql.cn/#sec-Overview- %} {% endblockquote %}
GraphQL语言致力于提供一种直观的弹性语法系统,用以描述客户端程序设计时的数据需求以及数据交互行为。
说的直白点就是能让API设计变得更加的灵活,你想要什么数据就给你什么数据,不多不少。
目前只有CMDB那一块使用的GraphQL,其它的前后端交互还是用的传统的方式。
不过这并不影响我对它的兴趣,新东西总是喜欢琢磨琢磨,更何况GraphQL有大厂的背书,那证明它的潜力是巨大地。
这种时候痛点就出现了,不重用接口则没法提高开发效率,重用接口则会有这些问题。
这个时候GraphQL就体现它的优势了,我认为它的出现就是为了解决上面的痛点。出现上面的问题的根本原因我认为在于,前端不能直白的告诉后端我要什么数据,必须通过后端经过对应的翻译转换,因为前端没有合适的方式来告诉我们A只需要name,B只需要name+sex,它可能就给我们一个userId然后给个businessCase然后我们根据businessCase来进行逻辑判断,进行数据查询,进行数据筛选以及过滤。
花点时间写这个,是因为觉得GraphQL算是开阔了我的技术视野,我们其实还用的很浅,他的一切皆是图、API无版本(某些场景)的思想,以及schema、别名、片段、指令、mutation、元字段等概念让GraphQL灵活的像猴哥,至少目前我们没有遇到有什么场景是满足不了的,至少对于技术浅薄的我来说是有开到脑洞。
学习地址:
{% blockquote learn http://graphql.cn/learn/ %} {% endblockquote %}
{% blockquote learn https://www.howtographql.com %} {% endblockquote %}
{% blockquote graphql-up https://github.com/prisma/graphql-up %} {% endblockquote %}
这是我用nodejs实现的很简单的demo:
{% blockquote demo https://github.com/WebHu/graph_demo.git %} {% endblockquote %}
这是通过howtographql搭建的demo
{% blockquote demo https://github.com/WebHu/graph_apollo_demo.git %} {% endblockquote %}
https://flaviocopes.com/graphql-vs-rest/
本文引用的内容,如有侵权请联系我删除,给您带来的不便我很抱歉。