文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

灵活的API查询语言GraphQL怎么用

2023-06-04 09:57

关注

灵活的API查询语言GraphQL怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

GraphQL 是什么

GraphQL 是一种 API 查询语言,是一个对自定义类型系统执行查询的服务端运行环境。它相当于客户端和服务器之间的中介,将客户端发来的所需数据的请求处理之后在一次请求之中就能获得符合客户端需求的响应数据。它还有个好处就是它是一种当作一种组织,管理数据的能力来使用,而不绑定在什么数据库上面,数据存在于哪里与它无关。

对比 Rest API

Rest API 是和 GraphQL 同类的用于查询的语言。Rest 把每个资源都用一个 URL 表示,访问这个 URL 就能够得到一份 JSON 格式的数据响应,但是这有一个缺点,你可能会得到与需求不相关的数据。而 GraphQL 则不会,发送过去的请求中指定了需要哪个资源,举个简单的例子,你需要这本书的作者的姓资源,那么 Rest API 会把把作者的名字也发给你,因为你是通过访问作者的信息的 URL 来获得姓的,而 GraphQL 则会只把需要的信息发过来,换句话说,需要什么资源是用户来决定的。

RPC vs REST vs GraphQL(参考资料点击这里)

灵活的API查询语言GraphQL怎么用

在合适的时候选择合适的工具是重要的,下面则列举了在一些场景下最好使用什么工具来作为参考

如果是 Management API,这类 API 的特点如下:

如果是 Command or Action API,这类 API 的特点如下:

如果是 Internal Micro Services API,这类 API 的特点如下:

如果是 Micro Services API,这类 API 的特点如下:

如果是 Data or Mobile API,这类 API 的特点是:

GraphQL 的查询与变更——如何查询 GraphQL 服务器
以一个查询结果为例:

{hero {name}}

该查询将会获得一个与其结构几乎一样的结果:

{"data": {"hero": {"name": "R2-D2"}}}

这是 GraphQL 最重要的特性,因为这样一来,你就总是能得到你想要的数据,而服务器也准确地知道客户端请求的字段。并且在GraphQL中查询是可交互的,你可以按你喜欢来改变查询,然后看看新的结果。

在查询时可以添加上参数,结果也会显得更有趣。参数可以是多种不同的类型。GraphQL 自带一套默认类型,但是 GraphQL 服务器可以声明一套自己的定制类型,只要能序列化成你的传输格式即可。

例如,有如下查询:

{human(id: "1000") {nameheight}}

其结果为:

{"data": {"human": {"name": "Luke Skywalker","height": 1.72}}}

在类似 REST 的系统中,你只能传递一组简单参数 —— 请求中的 query 参数和 URL 段。但是在 GraphQL 中,每一个字段和嵌套对象都能有自己的一组参数,从而使得 GraphQL 可以完美替代多次 API 获取请求。甚至你也可以给 标量(scalar)字段传递参数,用于实现服务端的一次转换,而不用每个客户端分别转换。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯