GraphQL的了解和简单使用
1 . GraphQL介绍
graphql 是 Facebook开源的一种API查询语言,它的强大之处用官方一句话来说就是:
ask exactly what you want. 问你到底想要什么
2 . 为什么要用GraphQL
例如我们日常开发中写一个app或一个小程序,我这个页面要用到一个商品的name,商品的description,商品code,另一个页面我要用到商品code,商品的img,商品的sku,这时后台数据为了一次性写好,会把所有关于商品的数据写到一个api里,这样我们调接口的时候会看到里面数据一层又一层的嵌套,明明只要一条数据,却要请求一大堆不用的东西,导致页面加载越来越慢,体验越来越差,这个时候GraphQL就登场了。
3 . 看懂基础的GraphQL语法
列如后台返回shop里的spu里的sku例子
前面是字段,后面是字段类型,同理请求是入参也是这样,[]代表返回时个数组,对象同理,!表示非空
前端查(调接口)
要用到GraphQL的query查询
product.gql文件写法如下
query ProductDetail($spuId:Long){shop{spu(id:$spuId){skus{idcodespecifications{values{idname}}}}}
}
代码解释
ProductDetail 为方法名
spuId 为参数
返回值如下
{"data": {"shop": {"spu": {"skus": [{"id": 458116,"code": "111","specifications": [{"values": [{"id": 177698,"name": "黑色"}]}]}]}}},"errors": [],"dataPresent": true,"extensions": null
}
不要觉得嵌套的深,数据比较多而已,例如上面所写,这时你想要什么字段就拿什么字段,
假如我只要id和code
可使用GraphiQl工具调试
这样就可以做到为所欲为,想要的都能拿到,不想要的一个都不要,是不是很好用
前端改
增删改要用到GraphQL的mutation变更
例如图片库的增删改
后台api如下
创建图片的入参
删除图片的入参
gql文件写法
#创建图片
mutation createSkuImage($input:SkuImageCreateInput!){createSkuImage(input:$input){idurl}
}
id.url为想要的返回字段
#删除图片
mutation deleteSkuImage($input:SkuImageDeleteInput!){deleteSkuImage(input: $input)
}
4 . 总结
推荐文档 :
graphql API
vue+apollo+grapql
推荐工具
GraphiQl下载地址
GraphQL的了解和简单使用相关推荐
- graphql_普通英语GraphQL指南
graphql by Luis Aguilar 路易斯·阿吉拉尔(Luis Aguilar) 普通英语GraphQL指南 (A Guide to GraphQL in Plain English) 您 ...
- 基于 GraphQL 实践的一点思考
hello~亲爱的观众老爷们大家好~最近一直沉迷于 GraphQL 的应用实践,正好公司黑客马拉松临近,就拉上了两位小伙伴,结合实际的业务场景,把 GraphQL 作为中间层的解决方案提上去~项目完成 ...
- 【.NET 遇上 GraphQL】使用 Hot Chocolate 构建 GraphQL 服务
Hot Chocolate 是 .NET 平台下的一个开源组件库, 您可以使用它创建 GraphQL 服务, 它消除了构建成熟的 GraphQL 服务的复杂性, Hot Chocolate 可以连接任 ...
- 使用Hot Chocolate创建ASP.NET Core GraphQL服务
GraphQL介绍 GraphQL是一个用于API的查询语言,是一个使用基于类型系统来执行查询的服务端运行时.GraphQL对你的API中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它 ...
- 使用Spring Boot和GraphQL构建安全的API
"我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. Grap ...
- ibm cloud怎么使用_使用VueJS,FeathersJS和GraphQL快速入门IBM Cloud
ibm cloud怎么使用 by Thomas Reinecke 由托马斯·雷内克(Thomas Reinecke) 使用VueJS,FeathersJS和GraphQL快速入门IBM Cloud ( ...
- 初识 GraphQL 和 Apollo Federation
目录 背景 为什么要用 GraphQL? 为什么要用 Apollo Federation 一个真实的案例 小结:什么样的团队适合使用 GraphQL 背景 GraphQL 自诞生以来就被寄予厚望,被认 ...
- 我们准备在网关中支持GrahpQL了
简单介绍下GraphQL: GraphQL是一种基于api的查询语言,它提供了一种更高效.强大和灵活的数据提供方式.它是由Facebook开发和开源,目前由来自世界各地的大公司和个人维护. 据说已经在 ...
- graphql_GraphQL简介
graphql What is GraphQL 什么是GraphQL How it works 这个怎么运作 GraphQL Queries GraphQL查询 Fields and argument ...
最新文章
- 北理工硕士被指抄袭投稿论文,校方通报:留校察看
- TIOBE 1 月编程语言:Python 摘得 2020 年度编程语言!
- mysql忘记密码怎么改
- 安装R语言开发环境RStudio服务器版
- sql server numeric 可存几位小数_CBA中的10大传奇队长,将篮球精神一直传递下去,你认识几位呢?...
- 【Swift学习】Swift编程之旅(一)
- linux+模块与设备关系,《Linux内核设计与实现》读书笔记 第十七章 设备与模块...
- 经典排序算法(十三)--奇偶排序Odd-even Sort
- java多线程在单例模式下是否需要同步
- iphone android 功能清单,iPhone的这几个App,让你的工作效率翻倍(1)
- Temporary ASP.NET Files 写访问权限
- 半次元收藏夹爬虫(残疾版,不喜勿喷)
- 2020牛客暑期多校训练营(第九场) 	The Flee Plan of Groundhog
- 【计算机网络】Quiz
- AndroidP HIDL 转载
- c语言怎么输入有空格的字符串
- 艺术 回文诗《璇玑图》
- IJCAI论文 | 基于改进注意力循环控制门,品牌个性化排序升级系统来了
- 金蝶kis可用库存查询_如何建立可用库存
- wget 整站抓取的好工具