HTTP数据集
Http数据集可以通过调接口,同时配置好相应的请求和响应参数,来获取数据,目前http数据集提供get和post两种请求方式。
使用场景
● 想通过调第三方接口来获取数据
● 接口还没开发好,想通过mock来模拟数据
需求描述
我想通过第三方接口来获取用户信息列表,并通过柱状图展示。柱状图需要的数据格式如下:
{
"data": [{
"name": "tom",
"age": 18,
"address": "合肥市蜀山区"
},
{
"name": "张三",
"age": 15,
"address": "合肥市高新区"
},
{
"name": "李四",
"age": 43,
"address": "安庆市"
},
{
"name": "王五",
"age": 60,
"address": "九江"
}
]
}
而第三方接口返回的数据格式为:
{
"data": {
"list": [{
"name": "tom",
"age": 18,
"address": "合肥市蜀山区"
},
{
"name": "张三",
"age": 15,
"address": "合肥市高新区"
},
{
"name": "李四",
"age": 43,
"address": "安庆市"
},
{
"name": "王五",
"age": 60,
"address": "九江"
}
]
}
}
需求分析
通过以上需求可知,数据在第三方接口中,我们需要调用接口获取数据,并且需要对返回的数据格式进行调整,这个时候就可以使用http数据集来处理
数据集配置
首先找到并点击顶部【数据集管理】标签页,在右侧页面点击【新增】按钮

点击【HTTP数据集】选项

名称输入:HTTP数据集
调用方式:前台代理
请求地址:第三方接口完整地址
请求类型:post
http数据集的调用方式分为【前台代理】和【后台代理】,在配置接口的【响应脚本】上有所区别,下面在具体配置中会详细说明.
点击【运行并解析】按钮,当请求地址及请求类型填写正确后可在【数据预览】看到接口响应数据。

点击【响应脚本】,响应脚本默认内置参数为resp,是接口返回的数据,可根据resp来获取想要的数据格式,如:
return resp.data.list
再次点击【运行并解析】按钮,数据预览的内容也会发生相应改变:

此时右侧【输出字段】会将数据的data中的字段列出来,我们可以进行配置,首先点击输出字段的【配置】按钮,在弹框内填入字段描述信息,点击【确定】按钮。

以上便完成了http数据集的基础配置,点击页面右上角【保存】按钮即可。
接下来在大屏设计器中使用上面开发好的脚本数据集了😄,使用方式上没有区别
下面开始介绍http数据集更多用法:
请求头
点击【请求头】的【增加】按钮,即可添加请求头参数,如给请求头添加Content-Type参数,值为text/plain:

请求参数
点击【请求参数】的【增加】按钮,即可添加请求参数,如给请求参数name参数,值为’tom’:

请求体
当【请求类型】设置为post类型时,会多一个【请求体】设置,如设置请求体内容为’text’
text

请求脚本
请求脚本已经内置了请求参数req,可对【请求地址】、【请求头】、【请求参数】、【请求体】中的值进行设置,具体格式如下所示:
/* 1、修改请求地址中的参数值 */
req.url.age=123
/* 2、修改请求头中的参数值 */
req.headers.name='jeck'
/* 3、修改请求参数中的参数值 */
req.params.num=11
/* 4、修改请求体中的参数值 */
req.data='abc'

响应脚本
前台代理
响应脚本内置了resp参数,resp为接口返回的数据,可直接使用,如:
return resp.data.list
后台代理
接口返回数据已经内置到参数responseString(已转为字符串)中,如果需要处理成JSON格式推荐使用JsonSlurper类,如:
import groovy.json.JsonSlurper
def jsonSlurper = new JsonSlurper()
def responseMap= jsonSlurper.parseText(responseString)
return responseMap.data.data
动态参数
由于有些接口会根据传入的参数不同返回不同的数据,所以http数据集提供了配置动态参数的功能,目前支持在【请求地址】、【请求头】、【请求参数】、【请求体】中加入参数,参数统一设置为${XX}形式,如给请求参数添加一个num参数,值为动态,设置如下:

设置完成后点击【运行并解析】按钮,会弹出【参数配置】弹框,可以对参数变量_num进行设置,点击【确定】后可在右侧【动态参数】进行查看。


开发规范
开发规范
- 数据必须是数组类型
- 数据仅第一层有效,子节点无效
正确响应格式
[
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
},
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
},
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
]
错误响应格式
返回的数据非集合
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
返回的有效数据不在第一层
[
{
"data": [
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
},{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
]
}
]