当我们的数据库,希望被第三方客户的服务端、android / ios客户端、浏览器访问时,我们可以写存储过程,通过SATRDA的Restful API功能把我们的存储过程转成webapi,其它应用就可以通过Http访问我们的存储过程得到json数据。
服务端配置
1.QQ群:1060914604 群文件下载最新版本satrda。解压后,运行服务端server/satserver
2.启动satserver.exe后,打开浏览器(支持chrome,IE8以上,360等),输入http://127.0.0.1:5555/admin 显示登录窗口,登录名:satrda,密码:satrda。登录后可以进行相关配置。

3.选择左边连接管理,显示连接管理界面,用于设置服务端和数据库的连接

默认有3条连接配置,mycon1、mycon2、mycon3
前两个通过指定驱动程序名和连接串连接,后一个在32位odbc管理器配置dsn进行连接。建议熟悉连接串的优先使用连接串连接(如sql server native client 10.0),其它连接串不清楚,或者使用连接串方式连接不上,可以在odbc管理器中建立dsn,测试连接成功,再在配置文件中指定该dsn,如mycon3配置。
mycon1连接sql server中名为test的数据库
mycon2连接oracle数据库ORCL
mycon3连接名称为mysql1的dsn
点击mycon1的修改操作图标,修改mycon1的配置

点击测试连接,显示连接成功后,点提交,进行保存。
参数说明:
名称:用于客户端与数据库连接的名字,对应客户端连接字符串的DB_NAME。
停用:是否停用,停用后客户端无法通过这个连接进行连接。
驱动类型:DSN对应odbc管理器中配置的DSN名称
Driver对应odbc管理器中安装的数据库驱动名称,
如sql server native client 10.0是机器上注册了的odbc驱动程序,可以在机器上通过odbc32位驱动管理器查看(64位系统请在运行窗口中运行“C:\Windows\SysWOW64\odbcad32.exe”来启动)。
存储过程定义
SQLSERVER
Create procedure sp_fun_test
@in1 int,
@in2 nvarchar(20),
--@tokeninfo varchar(200), --如果配置了登录,可以定义@tokeninfo参数,
--接收登录后保存的信息,如用户信息等,具体可以参考restful/login
@out nvarchar(20) output
as
set @out = '我是输出参数'
select @in1 as col1,@in2 as col2
ORACEL
create or replace procedure sp_fun_test(type_cur out SYS_REFCURSOR, in1 integer, in2 VARCHAR2)
as
begin
OPEN type_cur FOR
select id,name from test1;
end sp_fun_test;
定义完存储过程后,就实现了WebApi服务,其它应用程序可以通过Http访问该存储过程,并得到 Json结果
客户端通过Post方式调用
url: http://127.0.0.1:5555/restful/rpc
post数据(json格式):
{ "db":"mycon1","function":"sp_fun_test", "in1":10,"in2":"就是这么简单" }
返回结果:
{"success":true,"err":"","resultset":[{"col1":10,"col2":"就是这么简单"}],"out":"我是输出参数"}
说明:
url中的127.0.0.1:5555请换成自己服务器地址和端口号
post数据
| 参数 | 必选 | 类型 | 说明 |
| db | yes | string | satrda配置中设置的账套名 |
| function | yes | string | 存储过程名称 |
| in1 | no | string/number | 对应存储过程参数名称无@,小写 |
| In2 | no | string | 对应存储过程参数名称无@,小写 |
| token | no | string | 登录接口返回的token,如果配置文件中配置了需要登录,调用restful/rpc时,必须带上token |
返回结果
| 返回值字段 | 字段类型 | 字段说明 |
| success | boolean | true成功,false失败 |
| err | string | Success为false时显示错误信息 |
| resultset | array | 存储过程结果集的json数组 |
| out | string | 定义的output参数会加入,方便返回额外的记录 |
测试工具
在测试工具文件中包括了一个小巧的http测试工具,可以用于测试自己的接口

接口安全性
SatRDA提供了登录和Session机制,用于保障用户调用的合法性,提供了类似淘宝开放平台 Top协议的签名来防止API调用过程中被黑客恶意篡改,具体可以参考SatRDA下载包中的用户手册的Restful说明
1123

被折叠的 条评论
为什么被折叠?



