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

注意: 请求体的填写格式与请求头中的Content-Type值有关,具体请参考axios官网请求体编码的相关介绍,在http数据集中,请求头中的Content-Type默认为application/json,可以在请求头中对此参数进行重新设置。

请求脚本

请求脚本已经内置了请求参数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"
            }
        ]
    }
]
文档更新时间: 2024-11-28 18:09   作者:北京-产品-yantings
上一篇:
下一篇: