主旨
1)为了中间件支持跨操作系统部署,客户端支持跨操作系统、跨设备、跨开发语言,特制订本REST API规约。
2)所有接口均支持HTTP GET\POST调用。
3)调用示例为DELPHI代码,其他语言可参照编写。
4)JSON字符串的字符编码统一为UTF8。
5)因作者水平有限,不虑之处,恳请指正。
6)其他接口,可参照定义。
查询数据接口
功能
可以一次查询返回1~N个表的数据,支持主从表数据查询。
JSON样式
cols:字段定义,包括字段的名称、长度和类型。
rows:表数据。
{
"tables": [
{
"cols": [
{
"name": "goodsid",
"size": 8,
"type": "string"
},
{
"name": "goodsname",
"size": 50,
"type": "string"
}
],
"rows": [
{
"goodsid": "100036",
"goodsname": "秋冬四件套哦",
},
{
"goodsid": "100050",
"goodsname": "天堂伞",
}
]
},
{
"cols": [
{
"name": "unitid",
"size": 4,
"type": "string"
},
{
"name": "unitname",
"size": 6,
"type": "string"
}
],
"rows": [
{
"unitid": "11",
"unitname": "个"
},
{
"unitid": "12",
"unitname": "双"
}
]
}
]
}
返回值
成功:JSON表数据
失败:{”return”:”false”,”error”:”错误信息”}
DELPHI调用示例
procedure TForm1.Button2Click(Sender: TObject);
begin
var url, sql1, sql2: string;
sql1 := TNetEncoding.URL.Encode(‘select * from tgoods‘);
sql2 := TNetEncoding.URL.Encode(‘select * from tunit‘);
url := FUrl + ‘rest?accountno=1&count=1&plugid=9999&funcid=‘ + IntToStr(cmd_rest_query) + ‘&sql1=‘ + sql1 + ‘&sql2=‘ + sql2;
var s: string := IdHTTP1.Get(url);
Memo1.Lines.Add(s);
end;
提交数据接口
功能
可以一次提交1~N个表的修改数据。
JSON样式
table:提交的表名。
rows:提交的数据。
{
"deltas":
[
{
"table": "tunit",
"rows":
[
{"action": "modify", "original": {"unitid":"11","unitname":"个"}, "current": {"unitname":"中"}},
{"action": "delete", "original": {"unitid":"66","unitname":"国"}},
{"action": "insert", "current":{"unitid":"13","unitname":"人"}}
]
}
......
]
}
返回值
成功:{”return”:”true”}
失败:{”return”:”false”,”error”:”错误信息”}
下载文件接口
功能
可以一次下载1~N个文件。
JSON样式
{"files":[
{"fielname1":"文件名1","file1":"BASE64文件流1"},
{"fielname2":"文件名1","file2":"BASE64文件流2"}
]
}
返回值
成功:JSON文件数据
失败:失败:{”return”:”false”,”error”:”错误信息”}
DELPHI调用示例
procedure TForm1.Button10Click(Sender: TObject);
begin
IdHTTP1.get(FUrl + ‘rest?plugid=8888&funcid=5&filenum=1&filename1=1.exe‘);
end;
上传文件接口
功能
可以一次上传1~N个文件
DELPHI调用示例
上传文件使用MultiPart Form-Data。
procedure TForm1.Button9Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
var ms: TIdMultiPartFormDataStream := TIdMultiPartFormDataStream.Create;
ms.AddFile(‘file1‘, OpenDialog1.FileName);
IdHTTP1.Post(FUrl + ‘rest?plugid=8888&funcid=6&filenum=1&filename1=1.exe‘, ms);
ms.free;
end;
end;
返回值
成功:{”return”:”true”}
失败:{”return”:”false”,”error”:”错误信息”}