[]
本文将介绍网络型JSON数据源的前置请求功能,如果您在使用网络型JSON数据源时,不涉及多个请求组成请求链以获得最终数据,您不需要阅读本文。
阅读本文前,建议您提前阅读连接网络型JSON、连接网络型JSON时使用参数。
同时,本文部分章节涉及HTTP协议等网络相关知识,如果您对其有所了解,可以帮助您更好地理解本文。
前置请求,是Wyn v8.0版本中网络型JSON数据源新增的重要功能。设计的目的是使网络型JSON数据源支持连接多个请求组成的请求链,解决在实际的生产场景中常遇见的“获取最终数据的请求的部分参数来自于另一个请求的响应数据”的实际需求。
比如:
获取销售数据的API需要先通过获取令牌的API取得一个令牌用于认证。
获取产线详情的API需要先通过获取产线ID的API取得产线ID用于组成请求路径。
当然,前置请求作为增强网络型JSON数据源的高级功能,在不被业务需要的时候,它完全不需要被关注。
type=info
前置请求完全独立于其他配置,如果您不需要配置请求链,您完全不需要关注它。
这意味着您可以像Wyn v8.0之前一样使用网络型JSON数据源,前置请求的增强不会对之前的使用习惯造成影响。
在Wyn v8.0中,网络型JSON数据源新增了前置请求的配置,前置请求配置的相关介绍如下:
前置请求和端点地址类似
既可以配置HTTP请求的各个部分,如请求地址,请求头,认证,请求方法和请求体。
也可以定义和使用参数。
前置请求和端点地址的区别在于
端点地址通过预查询设置Json路径或者SQL语句(使用Json函数)将HTTP请求响应数据转换成表结构;端点地址输出的是表数据。
端点地址对外表现成网络型JSON数据源的一张表,供上层数据集、数据模型、大屏和报表使用。
前置请求通过变量配置设置变量名和Json路径从HTTP请求响应数据中抽取变量;前置请求输出的是一系列的变量。
前置请求是网络型JSON数据源内部的概念,前置请求输出的变量供请求链下游的前置请求,端点地址以及基准地址使用。
前置请求不能指定基准地址。
端点地址,基准地址和前置请求都可以指定自己的前置请求,指定前置请求后,可以在自己的请求地址,请求头和有效载荷中使用请求链上游的所有前置请求中定义的所有变量。
变量和前文提及的参数类似,参数通过
@参数名进行使用,变量通过${变量名}进行使用。不同的是,参数是数据源向外接收输入的接口,参数值由数据源外部传入,未传入时使用默认值运行;
变量是数据源内部的概念,变量值通过Json路径语法从前置请求响应数据中抽取而来。
本部分通过一个简单的例子,为您介绍前置请求的使用。
创建网络型JSON数据源,进入网络型JSON数据源设计器。

新建并预览前置请求。


前置请求的大部分内容与端点地址并无差别,前置请求不能设置基准地址,同时,前置请求需要定义变量才能保存。
从上面第二张图中可以看到,新建的前置请求,从APIhttps://jsonplaceholder.typicode.com/users?username=Maxime_Nienow的响应数据中按照Json路径$.[0].id抽取数据并作为变量userId的值。
接下来,我们可以预览前置请求的结果,检查是否取到了我们期待的数据。
type=info
请注意,前置请求的变量值将空数据视为一种合法情况。


从上面第二张图中可以看到,前置请求预览结果中,变量userId的值为8。
新建端点地址。

从上图中,可以看出,端点地址使用了步骤3中创建的前置请求,并使用了前置请求中创建的变量userId对todos进行筛选。
验证并预览端点地址。


验证并预览第4步中创建的端点地址,从上面第二图中可以看到,端点地址返回的数据中todos已经被userId=8筛选,变量生效,前置请求应用成功。
预览请求详情。

从上图可以看出,端点地址配置的API地址中https://jsonplaceholder.typicode.com/todos?userId=${userId}被替换成了https://jsonplaceholder.typicode.com/todos?userId=8。
前置请求的引入使网络型JSON数据源具备了连接请求链的能力,理论上,您可以在网络型JSON数据源中使用前置请求引用前置请求,组装出一个任意长度的请求链。请求链上的某一个请求节点,可以使用它上游的所有前置请求的定义的所有变量。