数据型IsoBean
# FastWeb 数据型IsoBean
本章节中,我们将学习如何制作一个数据型的IsoBean模块。数据型的IsoBean模块不需要Bean模块的配合,在参数中指定要连接的节点数据库名称与查询语句,就可执行结果并将查询到的结果回传。
数据型IsoBean模块的设计顺序如下:
- 配置节点数据库
- 设计IsoBean模块
- 发布IsoBean模块
# 1. 配置节点数据库
配置节点数据库的方式请参考 Node节点数据库。如要使用的节点数据库已创建,则可跳过此步骤。本示例中使用的FastWeb数据库已内置于示例库中,故此步骤省略。
# 2. 设计IsoBean模块
点击 [云服务工具]
- [IsoBean模块管理]
,打开IsoBean模块管理界面,点击 [添加]
按钮,按照以下提示创建一个IsoBean模块。其他信息中请注意要将 是否激活?
选项进行勾选。填写完成后,点击 [保存]
按钮。


创建完成后,选择创建的IsoBean,点击 [API设计]
,创建的API请按照以下方式进行设置。
function RestAPI()
{
//定义变量
var D,Q,V,db,sql,params;
//获取参数
//节点数据库与sql
db = APIParams.Values["db_name"];
sql = IIF(URLParams.Values["sql"]=="",APIParams.Values["sql"],URLParams.Values["sql"]);
//获取节点数据库
Try
D = GetNodeDataLink(db);
Except{
//报错时组装JSON错误信息
var DE = new TJSONObject();
DE.AddPair("status","error");
DE.AddPair("message","NodeData "+db+" not found.");
return(DE.ToString);
}
//创建数据集
Q = new TFDQuery(nil);
Try{
Try{
Q.Connection = D;
Q.SQL.Text = sql;
//打开数据集
Q.Open;
//获取数据集数组
V = TFDQuery(Q).ToJSONArray;
}
Except{
//报错时组装JSON错误信息
var E = new TJSONObject();
E.AddPair("status","error");
E.AddPair("message",ExceptionMessage);
return(E.ToString);
}
//返回结果
var O = new TJSONObject();
O.AddPair("status","ok");
O.AddPair("messaeg","success");
O.AddPair("records",TJSONNumber.Create(Q.RecordCount));
O.AddPair("data",V);
return(O.ToString);
}
Finally{
D.Free;
Q.Free;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
API设计完成后,首先点击 [保存]
图标按钮保存,然后点击 [测试]
按钮打开接口测试界面。

在接口测试的界面中,新建两个参数,名称分别为 db_name
与 sql
,设置的参数值见图中的说明。设置完成后,点击关闭按钮关闭界面。
# 3. 发布IsoBean模块
保存后,返回列表界面,选择刚才创建的IsoBean模块,点击 [IsoBean发布]
,打开 IsoBean 发布的界面。

选择要发布的用户(admin),点击 [IsoBean 选择...]
,从打开的IsoBean列表中选择IsoBean模块,双击导入至发布列表中,点击 [保存]
按钮,然后点击 [确定]
按钮关闭发布界面。
重新返回API设计界面,点击 [测试]
图标按钮,打开界面。点击 [Send]
按钮查看运行的结果。如果返回的结果中包含表的数据信息,则IsoBean创建成功

按照本节开头的方式将IsoBean发布给其他用户,之后,可使用 http://localhost:8888/?isobean=IB_nb-dat-0001_ItemList&userkey={user_guid}&sql={sql} (opens new window) 来进行查询。{user_guid}
为发布用户的ID,请注意,{sql}
中的内容需经过 URL编码 (opens new window) 后才可作为参数值使用。