graphql怎么传json套json

Posted

tags:

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

参考技术A 返回主页
苍青浪
博客园首页联系管理随笔- 1118 文章- 0 评论- 198 阅读- 358万
GraphQL入门有这一篇就足够了
一、GraphQL是什么?
关于GraphQL是什么,网上一搜一大堆。根据官网的解释就是一种用于 API 的查询语言。

一看到用于API的查询语言,我也是一脸懵逼的。博主你在开玩笑吧?你的翻译水平不过关?API还能查吗?API不是后端写好,前端调用的吗?

的确可以,这就是GraphQL强大的地方。
引用官方文档的一句话:

ask exactly what you want.

二、为什么要使用GraphQL?
在实际工作中往往会有这种情景出现:比如说我需要展示一个游戏名的列表,可接口却会把游戏的详细玩法,更新时间,创建者等各种各样的 (无用的) 信息都一同返回。

问了后端,原因大概如下:

原来是为了兼容PC端和移动端用同一套接口
或者在整个页面,这里需要显示游戏的标题,可是别的地方需要显示游戏玩法啊,避免多次请求我就全部返回咯
或者是因为有时候项目经理想要显示“标题+更新时间”,有时候想要点击标题展开游戏玩法等等需求,所以把游戏相关的信息都一同返回
简单说就是:

兼容多平台导致字段冗余
一个页面需要多次调用 API 聚合数据
需求经常改动导致接口很难为单一接口精简逻辑
有同学可能会说那也不一定要用GraphQL啊,比方说第一个问题,不同平台不同接口不就好了嘛

http://api.xxx.com/web/getGameInfo/:gameID
http://api.xxx.com/app/getGameInfo/:gameID
http://api.xxx.com/mobile/getGameInfo/:gameID

或者加个参数也行

http://api.xxx.com/getGameInfo/:gameID?platfrom=web

这样处理的确可以解决问题,但是无疑加大了后端的处理逻辑。你真的不怕后端程序员打你?

这个时候我们会想,接口能不能不写死,把静态变成动态?

回答是可以的,这就是GraphQL所做的!

三、GraphQL尝尝鲜——(GraphQL简单例子)
下面是用GraphQL.js和express-graphql搭建一个的普通GraphQL查询(query)的例子,包括讲解Gr

以上是关于graphql怎么传json套json的主要内容,如果未能解决你的问题,请参考以下文章

gatsby-source-graphql 好像没有传cookie header,怎么解决?

GraphQL:从 JSON 文件源完成查询

PHP 怎么解析远程URL 传过来json ,在前端显示出来

来自 Gatsby 中单个对象 JSON 文件的 GraphQL 模式

将对象作为参数传递给 GraphQL Mutation (graphql-request)

如何将参数传递给graphql查询?