restql 学习三 查询语言简单说明
restql 中with 参数的内容在restql 中实际上就是http request 的请求内容。按照restql 的设计
method 分为 from (get) , to (post) ,into(put) ,update (patch), delete (delete), 实际开发中,好多
团队对于from (get) 的处理可能并不是按照 rest标准的处理,我们可能需要使用to 处理
to 格式说明
- 格式
to users
with
id = "user.id"
username = "user.name"
password = "super.secret"
http post 格式
POST http://some.api/users/
BODY { "id": "user.id", "username": "user.name", "password": "super.secret"
wtih 参数的格式
with 支持简单数据类型以及复杂格式(json,数组扁平处理 )
- 支持的数据类型
- 字符串,使用双引号
- 数字,可以是浮点类型 ,科学计数不支持
- 布尔类型,true,false
- 列表类型,使用中括号包含
- key/value 数据结构,类似json
- 从其他查询引用的值,使用引号以及`.`引用,类似json 字段引用
变量引用
我们可以方便的传递参数,
- 格式如下
from superheroes
with
name = $heroName
level = $heroLevel
powers = $heroPowers
对应的http 请求为
localhost:9000/run-query?heroName="Superman"&heroLevel=99&heroPowers=["flight","heat vision","super strenght"]
展开以及扁平处理
使用展开以及扁平功能,我们我们方便的进行传递参数的处理
- 参考扩展使用
from superheroes as party
with
id = [1, 2, 3]
http 请求格式
GET http://some.api/superhero?id=1
GET http://some.api/superhero?id=2
GET http://some.api/superhero?id=3
- 参考扁平处理
使用->
会镜像进行转换
from superheroes as fused
with
id = [1, 2, 3] -> flatten
http 格式
GET http://some.api/superhero?id=1&id=2&id=3
值编码
可以对于参数参数编码(比如base64,json)
- 参考使用
from superheroes as hero
with
stats = {health: 100,
magic: 100} -> json // encode this value as a json string
from superheroes as hero
with
bag = {capacity: 10} -> base64
选择返回值
使用only 我们可能选择应用需要的数据
- 参考格式
from superheroes as hero
with
id = 1
only
name
items
skills.id
skills.name
nicknames -> matches("^Super")
说明:
其中我们可以使用match 进行进一步的数据过滤
忽略错误
有时对于数据查询的错误我们可能不太感兴趣,我们可恶意使用忽略错误
- 参考格式
from products as product
from ratings
with
productId = product.id
ignore-errors
请求头处理
很多时候我们基于请求头进行api 的认证处理,restql 提供了请求头参数的处理
- 参考格式
from superheroes as hero
headers
Authorization = "Basic user:pass"
Accept = "application/json"
with
id = 1
超时控制
很多时候接口响应比较慢,我们可以通过设置超时时间
- 参考格式
from superheroes as hero
headers
Authorization = "Basic user:pass"
Accept = "application/json"
timeout 200
with
id = 1
cache 请求头控制
我们可以添加cache 请求头,方便proxy 对于请求资源的cache 处理
use max-age = 600
from products
请求头
参考资料
http://docs.restql.b2w.io/#/restql/query-language?id=expanding-and-flattening
restql 学习三 查询语言简单说明的更多相关文章
- WebSocket 学习(三)--用nodejs搭建服务器
前面已经学习了WebSocket API,包括事件.方法和属性.详情:WebSocket(二)--API WebSocket是基于事件驱动,支持全双工通信.下面通过三个简单例子体验一下. 简单开始 ...
- HTTP学习三:HTTPS
HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...
- 4.机器学习——统计学习三要素与最大似然估计、最大后验概率估计及L1、L2正则化
1.前言 之前我一直对于“最大似然估计”犯迷糊,今天在看了陶轻松.忆臻.nebulaf91等人的博客以及李航老师的<统计学习方法>后,豁然开朗,于是在此记下一些心得体会. “最大似然估计” ...
- DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件
DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件 本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...
- wordpress学习四: 一个简单的自定义主题
在学习三里分析了自带的一个例子,本节我们就自己仿照他做个简单的吧,重点是调用wordpress封装好的函数和类,css和html可以稍好在调整. 将wp带的例子复制一份处理,重新名个名字. 清空ind ...
- Android JNI学习(三)——Java与Native相互调用
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
- day91 DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件
DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件 本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...
- oracle学习 第一章 简单的查询语句 ——03
1.1最简单的查询语句 例 1-1 SQL> select * from emp; 例 1-1 结果 这里的 * 号表示全部的列.它与在select 之后列出全部的列名是一样的.查询语句以分号( ...
- day 89 DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件
DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件 本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...
随机推荐
- 【07月16日】A股滚动市净率PB历史新低排名
2010年01月01日 到 2019年07月16日 之间,滚动市净率历史新低排名. 上市三年以上的公司,2019年07月16日市净率在30以下的公司. 来源:A股滚动市净率(PB)历史新低排名. 1 ...
- thinkphp区间查询、统计查询、SQL直接查询
区间查询 $data['id']=array(array('gt',4),array('lt',10));//默认关系是(and)并且的关系 //SELECT * FROM `tp_user` WHE ...
- linux kernel debug
1. sysrq http://www.chinaunix.net/old_jh/4/902287.html 常用的SysRq命令(序列) 重启机器的SysRq命令序列是 k(SAK) s(sync ...
- springboot+RabbitMQ 问题 RabbitListener 动态队列名称:Attribute value must be constant
因为多机环境fanout广播模式,每台机器需要使用自己的队列接受消息 所以尝试使用以下的方案 private static final String QUEUE_NAME="foo.&quo ...
- Prometheus Alertmanager 介绍详解
Prometheus 之 Alertmanager 介绍详解 告警无疑是监控中非常重要的环节,虽然监控数据可视化了,也非常容易观察到运行状态.但我们很难做到时刻盯着监控,所以程序来帮巡检并自动告警,这 ...
- 《即时消息技术剖析与实战》学习笔记6——IM系统如何保证消息的安全性
在消息产生.流转的各个环节中,需要保证消息传输安全性.消息存储安全性.消息内容安全性. 一.消息传输安全性 消息传输的重要防范点有两个,一是访问入口安全,二是传输链路安全. 1.HttpDNS保证访问 ...
- thread stack size not set; configure via D:\Program Files\elasticsearch-5.0.0\config\jvm.options or ES_JAVA_OPTS
抄自:http://blog.csdn.net/leo063/article/details/52994786 thread stack size not set; configure via D:\ ...
- 添加wcf服务引用,无法签出当前文件
写了一些wcf服务接口,使用控制台可以正常启动服务,想要测试一下,新建项目添加服务引用,提示:“无法签出当前文件.该文件可能为只读或已锁定,或者您需要手动签出它.” 在网上找了找,有说可能是因为源代码 ...
- 搜索引擎elasticsearch监控利器cat命令
目录 一.Cat通用参数 二.cat命令 三.示例 查询aurajike索引下的总文档数和有效文档数 查询aurajike各分片的调度情况 一.Cat通用参数 参数名 指令示例 功能 Verbose ...
- DjangoDRF之视图总结
思维导图xmind文件:https://files-cdn.cnblogs.com/files/benjieming/DRF%E6%A8%A1%E5%9D%97%E4%B9%8B%E8%A7%86%E ...