更新时间:2023-11-24 GMT+08:00

多个数据源编排

一个数据API可以包含多个数据源,因此一次API请求可以涉及多个数据源,例如取第一个数据源查询结果作为第二个数据源的参数。

以MySQL为例说明,假设数据API有数据源1和数据源2,user01是数据源1的数据表和user02是数据源2的数据表,两张表的结构如下:

表1 表结构

数据源

表名

参数

数据源1

user01

  • id(int)
  • name(varchar)

数据源2

user02

  • user_id(int)
  • user_age(int)
  • user_sex(varchar)

数据源SQL设计如下:

数据源1,在表user01中查找name为“zhang”的数据记录id。假设数据源1的返回对象为“default1”。

select id from user01 where name='zhang';

数据源2,根据user01中找到的id,在user02中找到对应的数据记录user_age。假设数据源2的返回对象为“default2”。

select user_age from user02 where user_id=${default1[0].id};

其中,${default1[0].id}为数据源1的查询结果(default1为数据源1的返回对象,id为数据源1的查询字段)。

假设,数据表user01和user02中有如下数据记录:

user01

user02

id

name

user_id

user_age

user_sex

1

zhang

2

17

2

li

3

18

3

wang

1

18

则调用该数据API将返回如下响应:

{
     "default1":[{
         "id":1
     }],
     "default2":[{
         "user_age":18
     }]
}