历史版本8 :数据查询API-参数为空查询全部 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineDataLink版本
功能变动
4.0.20.1-
4.0.26非超级管理员支持使用数据服务
4.0.27支持使用 FineBI 公共数据作为数据来源
4.0.28

数据发布API 支持设置 SQL防注入,以便使用 IN 语法实现多值查询

数据发布API参数支持传入NULL值

数据发布API参数支持配置必填 / 非必填

数据发布API支持GET请求方式

数据发布API的POST请求方式,额外支持x-www-form-urlencoded格式

1.2 应用场景

用户想要在发布API 时,对 API 取数逻辑进行设置:未传指定参数,则省略此参数对应的查询条件。即实现想查询全部数据时,不传对应参数;要查询其他非空值数据时,正常传参。

FineDataLink 支持配置参数为必填 / 非必填

2. 操作步骤编辑

示例需要将 S订单中数据发布为 API,并在取数时不传递参数「area」,则取出全部的数据,当正常传递「area」参数,则查询其他非空值数据。

2.1 新建API

进入「数据服务」,点击「新建>API」,进入API 发布编辑界面,如下图所示:

2.2 输入API信息

设置 API名称、可对API进行描述说明,同时设置发布的API 的路径,并选择是否开启认证,最后设置超时时间,此处使用了 GET 请求方式,如下图所示:

API的请求路径、请求格式、返回格式等基本信息详情参见:发布API

2.3 设置发布内容及参数

选择要发布的数据源以及数据连接,然后输入查询 SQL 语句,如下图所示:

SELECT * FROM S订单 WHERE 1=1 AND CASE WHEN ${area} != '' THEN 货主地区=${area} ELSE 1=1 END

该参数在 API发布后,可在通过 API 取数时使用 SQL 语句设置的参数进行条件取数。

请求参数配置中会自动识别查询 SQL 设置的参数名,可以定义该参数的参数类型,由于此时希望实现使用API时不引用参数,默认取出所有的数据,因此取消勾选「参数必填」并设置默认值为 '',即为空,如下图所示:

注:此时若调用 API ,则SQL 语句会将默认值空带入,即执行SELECT * FROM S订单 WHERE 1=1 AND CASE WHEN '' != '' THEN 货主地区='' ELSE 1=1 END,即查询出全量数据。

若设置默认值为 NULL 时,则SQL 语句会将默认值 NULL 带入,即执行 SELECT * FROM S订单 WHERE 1=1 AND CASE WHEN NULL != '' THEN 货主地区=NULL ELSE 1=1 END,此时的执行结果取决于数据库读取情况。

点击查询预览,输入预览参数值,点击「预览」,如下图所示:

即可看到满足条件的预览结果,如下图所示:

2.4 预览测试

点击下一步进入「预览测试」界面。

点击「测试API调用」,输入请求参数值,补充 body 内容进行测试,即可看到测试接口返回结果,如下图所示:

点击「生成API」即可完成API生成,如下图所示:

2.5 API上线

API列表展示所有API信息,选择指定的API ,可查看基本信息和API 的内容以及参数。

在右上角点击「上线」,即可发布 API,如下图所示:

4. 后续步骤编辑

将上线的 API 通过应用进行管理,以便能够被调用,详情参见:API应用管理

若需要使用已经发布的API,详情参见:使用数据服务发布的API(GET 请求)

可看到参数为空,即不传对应参数 area 时,取全部的数据,如下图所示:

对已经发布的API进行管理,详情参见:服务运维