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例子

前面是字段,后面是字段类型,同理请求是入参也是这样,[]代表返回时个数组,对象同理,!表示非空

前端查(调接口)

要用到GraphQLquery查询
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工具调试

这样就可以做到为所欲为,想要的都能拿到,不想要的一个都不要,是不是很好用

前端改

增删改要用到GraphQLmutation变更

例如图片库的增删改

后台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的了解和简单使用相关推荐

  1. graphql_普通英语GraphQL指南

    graphql by Luis Aguilar 路易斯·阿吉拉尔(Luis Aguilar) 普通英语GraphQL指南 (A Guide to GraphQL in Plain English) 您 ...

  2. 基于 GraphQL 实践的一点思考

    hello~亲爱的观众老爷们大家好~最近一直沉迷于 GraphQL 的应用实践,正好公司黑客马拉松临近,就拉上了两位小伙伴,结合实际的业务场景,把 GraphQL 作为中间层的解决方案提上去~项目完成 ...

  3. 【.NET 遇上 GraphQL】使用 Hot Chocolate 构建 GraphQL 服务

    Hot Chocolate 是 .NET 平台下的一个开源组件库, 您可以使用它创建 GraphQL 服务, 它消除了构建成熟的 GraphQL 服务的复杂性, Hot Chocolate 可以连接任 ...

  4. 使用Hot Chocolate创建ASP.NET Core GraphQL服务

    GraphQL介绍 GraphQL是一个用于API的查询语言,是一个使用基于类型系统来执行查询的服务端运行时.GraphQL对你的API中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它 ...

  5. 使用Spring Boot和GraphQL构建安全的API

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. Grap ...

  6. ibm cloud怎么使用_使用VueJS,FeathersJS和GraphQL快速入门IBM Cloud

    ibm cloud怎么使用 by Thomas Reinecke 由托马斯·雷内克(Thomas Reinecke) 使用VueJS,FeathersJS和GraphQL快速入门IBM Cloud ( ...

  7. 初识 GraphQL 和 Apollo Federation

    目录 背景 为什么要用 GraphQL? 为什么要用 Apollo Federation 一个真实的案例 小结:什么样的团队适合使用 GraphQL 背景 GraphQL 自诞生以来就被寄予厚望,被认 ...

  8. 我们准备在网关中支持GrahpQL了

    简单介绍下GraphQL: GraphQL是一种基于api的查询语言,它提供了一种更高效.强大和灵活的数据提供方式.它是由Facebook开发和开源,目前由来自世界各地的大公司和个人维护. 据说已经在 ...

  9. graphql_GraphQL简介

    graphql What is GraphQL 什么是GraphQL How it works 这个怎么运作 GraphQL Queries GraphQL查询 Fields and argument ...

最新文章

  1. 北理工硕士被指抄袭投稿论文,校方通报:留校察看
  2. TIOBE 1 月编程语言:Python 摘得 2020 年度编程语言!
  3. mysql忘记密码怎么改
  4. 安装R语言开发环境RStudio服务器版
  5. sql server numeric 可存几位小数_CBA中的10大传奇队长,将篮球精神一直传递下去,你认识几位呢?...
  6. 【Swift学习】Swift编程之旅(一)
  7. linux+模块与设备关系,《Linux内核设计与实现》读书笔记 第十七章 设备与模块...
  8. 经典排序算法(十三)--奇偶排序Odd-even Sort
  9. java多线程在单例模式下是否需要同步
  10. iphone android 功能清单,iPhone的这几个App,让你的工作效率翻倍(1)
  11. Temporary ASP.NET Files 写访问权限
  12. 半次元收藏夹爬虫(残疾版,不喜勿喷)
  13. 2020牛客暑期多校训练营(第九场) The Flee Plan of Groundhog
  14. 【计算机网络】Quiz
  15. AndroidP HIDL 转载
  16. c语言怎么输入有空格的字符串
  17. 艺术 回文诗《璇玑图》
  18. IJCAI论文 | 基于改进注意力循环控制门,品牌个性化排序升级系统来了
  19. 金蝶kis可用库存查询_如何建立可用库存
  20. wget 整站抓取的好工具

热门文章

  1. 1.2帮助软件Rstudio的下载与安装
  2. 133、初沸点的概念
  3. “附近的人”功能是如何实现的?
  4. 让深度学习进入移动端,蘑菇街在移动端的深度学习优化实践
  5. 软件测试及Java开发前了解的基础
  6. JS的重绘(repaints)和重排(reflows)
  7. 一本通1646GT 考试
  8. ambari_HDP之mapreduce参数调优
  9. 实用又救急!快速恢复误删文件!
  10. Oracle-Materialized View