GraphQL 优势之处
一次查询,搞定需求
举个例子,Book对象有bookTypeId,那我想看对应的bookTypeName,bookType对应的summary咋办?
如果你用RESTful Api ,免不了要定制接口或者多次调用后端。
现在用上GraphQL,就是这么无情:
#查询语句
query add{
book(bookId: 1){
bookName
author
bookType{
typeId
typeName
summary
}
wordNumbers
cover
clickTimes
lastupdate
createtime
}
}
#结果
{
"data": {
"book": {
"bookName": "斗战狂潮",
"author": "骷髅精灵",
"bookType": {
"typeId": "48",
"typeName": "修真文明",
"summary": "修仙觅长生,热血任逍遥,踏莲曳波涤剑骨,凭虚御风塑圣魂!"
},
"wordNumbers": 2547900,
"cover": "//qidian.qpic.cn/qdbimg/349573/1003694333/180",
"clickTimes": 3,
"lastupdate": "2018-02-23T00:00:00",
"createtime": "2018-02-23T11:33:57"
}
}
}
sql语句?各种定制化接口?不存在的,一个GraphQL查询搞定,美滋滋。
继续来一发,排行榜表和作品表,排行榜表记录了book_id,前端展示只需这样:
query rank {
rankList(rankTypeId: 1,first: 2) {
edges {
node {
bookId
book {
bookName
author
wordNumbers
}
order
rankTypeId
createtime
}
}
}
}
**自动根据节点id查询对应node信息,多帅哦**
{
"data": {
"rankList": {
"edges": [
{
"node": {
"bookId": 1,
"book": {
"bookName": "斗战狂潮",
"author": "骷髅精灵",
"wordNumbers": 2547900
},
"order": 1,
"rankTypeId": 1,
"createtime": "2018-02-24T00:28:37"
}
},
{
"node": {
"bookId": 2,
"book": {
"bookName": "就问你气不气",
"author": "秋刀斩鱼",
"wordNumbers": 1736500
},
"order": 2,
"rankTypeId": 1,
"createtime": "2018-02-24T00:32:23"
}
}
]
}
}
}
这么写下来,GraphQL果然还是很不错的。。
上个链接GraphQL
GraphQL 优势之处的更多相关文章
- vultr vps服务器存在的7个优势及选择原因
原本准备在第一篇文章的时候完整的新注册账户的,但是考虑到对于这款VPS主机的了解,还是先整理这篇关于网络上和我自己在使用vultr vps主机产品的时候可能自认为的优势之处,这样可以加强很多新用户对于 ...
- 聊聊我对 GraphQL 的一些认知
每隔一段时间就能看到一篇 GraphQL 的文章,但是打开文章一看,基本上就是简单的介绍下 GraphQL 的特性.很多文章其实就是 github 上找个 GraphQL 的项目,然后按照对应的 de ...
- 搭建自己的PHP框架心得(三)
h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h ...
- 趋势型指标——MACD
1.简要介绍▪ 计算方法▪ DIFF▪ DEA▪ MACD▪ 构造原理▪ 缺点2.实战技巧3.运用技巧▪ 应用原理▪ 经典用法▪ 实战战法▪ 捕捉卖点▪ 买卖策略▪ 短线实战4.组合指标运用5.一般研 ...
- stl-基本知识
摘要:本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分 ...
- stl 迭代器(了解)
STL 主要是由 containers(容器),iterators(迭代器)和 algorithms(算法)的 templates(模板)构成的. 对应于它们所支持的操作,共有五种 iterators ...
- 转:Nginx+Apache环境的安装与配置
转:http://www.server110.com/nginx/201404/8817.html 我们依然尽可能采用yum来安装我们需要的软件,由系统官方维护的软件,其安全性和稳定性都值得信赖,并且 ...
- asp.net mvc开发的社区产品相关开发文档分享
分享一款基于asp.net mvc框架开发的社区产品--近乎.目前可以在官网免费下载,下载地址:http://www.jinhusns.com/Products/Download?type=whp 1 ...
- 探索PHP+Nginx(二) 安装PHP
首先,我们简单了解一下什么是PHP,PHP(Hypertext Preprocessor 超文本预处理器) 和Java语言一样,PHP也是属于高级语言,并不能直接在操作系统上运行.Java运行需要虚拟 ...
随机推荐
- PHP命名空间带来的干扰
有时候,不想受命名空间约束,就可以整一个全局类. protected function sendDayuSms($tel,$code,$template_type,$product = "[ ...
- 010. windows10下安装kivy 1.9.1版
Microsoft Windows [版本 10.0.14393] 以管理员权限打开cmd (c) 2016 Microsoft Corporation. 保留所有权利. 1. C:\Users\LG ...
- python学习(十四) 网络编程
14.1 少数几个网络设计模块 14.1.1 socket模块 套接字包括:服务器套接字和客户机套接字. 在创建一个服务器套架字后,让它等待连接,这样它就在摸个网络地址处(IP地址和一个端口号的组合) ...
- linux lcd设备驱动剖析二
上一节中,分析了s3c2410fb,c的入口出口函数,以及一些重要结构体的分析,初步知道了这是一个平台驱动的架构. 上一节文章链接:http://blog.csdn.net/lwj103862095/ ...
- mysql字符类型
字符类型 #官网:https://dev.mysql.com/doc/refman/5.7/en/char.html #注意:char和varchar括号内的参数指的都是字符的长度 #char类型:定 ...
- 升级python到2.7
wget http://python.org/ftp/python/2.7.8/Python-2.7.8.tgz tar zxvf Python-.tgz cd Python- ./configure ...
- 关闭PdfReader右侧工具栏的方法
1.首先单次关闭工具栏 点击视图-显示/隐藏-工具窗格,关闭右侧工具栏,但下次打开pdf还会出来,所以: 2.记住设置状态 编辑-首选项-文档-记住工具窗格当前状态
- Java多线程-新特征-阻塞栈LinkedBlockingDeque
对于阻塞栈,与阻塞队列相似.不同点在于栈是“后入先出”的结构,每次操作的是栈顶,而队列是“先进先出”的结构,每次操作的是队列头. 这里要特别说明一点的是,阻塞栈是Java6的新特征.. Java为阻塞 ...
- linux系统上部署一个web项目
对于apache开源项目中tomcat的认识,大多停留在Windows下,这次我通过一个简单的实例来介绍一下在linux下如何搭建tomcat环境,并且部署一个web项目. 先从基本安装开始,可别小看 ...
- 13-爬取百度贴吧中的图片(python+xpath)
通过xpath分析页面,爬取页面中的图片: #_*_ coding: utf-8 _*_ ''' Created on 2018年7月15日 @author: sss function: 使用xpat ...