多个数据源编排
一个数据API可以包含多个数据源,因此一次API请求可以涉及多个数据源,例如取第一个数据源查询结果作为第二个数据源的参数。
以MySQL为例说明,假设数据API有数据源1和数据源2,user01是数据源1的数据表和user02是数据源2的数据表,两张表的结构如下:
数据源 |
表名 |
参数 |
---|---|---|
数据源1 |
user01 |
|
数据源2 |
user02 |
|
数据源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 }] }