[]
Wyn支持连接网络型JSON,对接入的数据进行加工和处理,最终通过仪表板或报表实现数据的可视化展示。
前置请求,是Wyn v8.0版本中网络型JSON数据源新增的重要功能。设计的目的是使网络型JSON数据源支持连接多个请求组成的请求链,解决在实际的生产场景中常遇见的“获取最终数据的请求的部分参数来自于另一个请求的响应数据”的实际需求。
本文将为您详细介绍前置请求如何使用的具体操作流程,为您提供全面且实用的参考。
典型场景
场景1:许多 API(如 Google API、Microsoft Graph API)使用 OAuth2 认证机制,要求先获取访问令牌(Token),然后将令牌用于后续的数据请求。
场景2:某些 API 的请求路径或参数需要从另一个 API 的响应中动态获取。例如,获取用户详情时需要先获取用户 ID,或获取设备状态时需要先获取设备 ID。
当然,前置请求作为增强网络型JSON数据源的高级功能,在不被业务需要的时候,它完全不需要被关注。
type=info
提示
前置请求是网络型 JSON 数据源的高级功能。如果您的业务不需要请求链功能,可以完全忽略它。
这意味着您可以像 Wyn v8.0 之前一样使用网络型 JSON 数据源,前置请求的增强不会对之前的使用习惯造成影响。
在Wyn v8.0中,网络型JSON数据源新增了前置请求的配置,前置请求配置的相关介绍如下:
前置请求和端点地址类似
既可以配置HTTP请求的各个部分,如请求地址,请求头,认证,请求方法和请求体。
也可以定义和使用参数。
前置请求和端点地址的区别在于
端点地址通过预查询设置Json路径或者SQL语句(使用Json函数)将HTTP请求响应数据转换成表结构;端点地址输出的是表数据。
端点地址对外表现成网络型JSON数据源的一张表,供上层数据集、数据模型、大屏和报表使用。
前置请求通过变量配置设置变量名和Json路径从HTTP请求响应数据中抽取变量;前置请求输出的是一系列的变量。
前置请求是网络型JSON数据源内部的概念,前置请求输出的变量供请求链下游的前置请求,端点地址以及基准地址使用。
前置请求不能指定基准地址。
端点地址,基准地址和前置请求都可以指定自己的前置请求,指定前置请求后,可以在自己的请求地址,请求头和有效载荷中使用请求链上游的所有前置请求中定义的所有变量。
type=info
变量和前文提及的参数类似,参数通过
@参数名
进行使用,变量通过${变量名}
进行使用。不同的是,参数是数据源向外接收输入的接口,参数值由数据源外部传入,未传入时使用默认值运行;
变量是数据源内部的概念,变量值通过Json路径语法从前置请求响应数据中抽取而来。
前置请求使用时,需满足以下条件:
知识点掌握:建议您提前阅读以下文档,以便更好地理解前置请求的使用:
网络相关知识:
本文部分章节内容涉及HTTP协议等网络相关知识,如果您对其有所了解,可以帮助您更好地理解本文。
本部分通过一个简单的例子,为您介绍前置请求的使用。
步骤一:创建网络型Json数据源
创建网络型JSON数据源,文档门户,点击「创建文档>数据源」,进入数据源类型选择界面,选择JSON,进入JSON数据源设计器。
步骤二:新建并预览前置请求
Json数据源界面,源类型选择网络,参考下图,创建前置请求。
前置请求与端点地址类似,但不能设置基准地址,且必须定义变量才能保存。
从上面第二张图中可以看到,新建的前置请求,从APIhttps://jsonplaceholder.typicode.com/users?username=Maxime_Nienow
的响应数据中按照Json路径$.[0].id
抽取数据并作为变量userId
的值。
接下来,我们可以预览前置请求的结果,检查是否取到了我们期待的数据。
从上面第二张图中可以看到,前置请求预览结果中,变量userId
的值为8
。
type=info
注意:前置请求的变量值将空数据视为一种合法情况。
步骤三:新建端点地址
新建端点地址。
从上图中,可以看出,端点地址使用了步骤二中创建的前置请求,并使用了前置请求中创建的变量userId
对todos
进行筛选。
步骤四:验证
验证并预览端点地址。
验证并预览本步中创建的端点地址,从上面第二图中可以看到,端点地址返回的数据中todos
已经被userId=8
筛选,变量生效,前置请求应用成功。
步骤五: 预览数据
预览请求详情。
从上图可以看出,端点地址配置的API地址中https://jsonplaceholder.typicode.com/todos?userId=${userId}
被替换成了https://jsonplaceholder.typicode.com/todos?userId=8
。
前置请求的引入使网络型JSON数据源具备了连接请求链的能力,理论上,您可以在网络型JSON数据源中使用前置请求引用前置请求,组装出一个任意长度的请求链。请求链上的某一个请求节点,可以使用它上游的所有前置请求的定义的所有变量。