全能中间件 REST API 使用手册
全能中间件 REST API 使用手册
Ver:17.6.24
技术支持QQ:64445322
QQ群:339616649
任何第三方应用或网站都可以通过使用开放API为用户提供实时优质的服务。 所有的API都是基于REST基础的接口规范,可兼容多种编程语言。
1、参数编码
所有的请求和响应数据编码皆为utf-8格式,url里的所有参数值请做URIEncode编码;
各个参数请进行URL 编码(UTF-8),编码时请遵守 RFC 1738。
2、HTTP MIME类型:Content-type: application/json; charset=utf-8
3、服务地址:http(s)://127.0.0.1:9981/rest
4、API 接口
4.1【用户登录】/user/login
1)、接口说明:登录中间件
2)、HTTP请求方式:GET/POST
3)、输入参数说明:
|
参数名称 |
参数类型 |
描述 |
是否必须 |
|
user_name |
string |
用户名 |
是 |
|
password |
string |
密码 |
是 |
|
version |
string |
版本号,可选值:2.0 |
否 |
4)、请求示例:
5)、服务端应答
{
"status": 0,
"message": "ok",
"token": "DBF0FC1C3DD349329459248245AB02E3",
"expire_time": "2017-04-25T10:30:03.232",
"app_secret": "d122e06e41c7485ba27eb38c6afc5159"
}
4.2【调用存储过程】db/storedproc
1)、接口说明:调用存储过程、函数、可返回输出参数、返回值、数据集
2)、HTTP请求方式:GET/POST
3)、输入参数说明:
|
参数名称 |
参数类型 |
描述 |
是否必须 |
|
token |
String |
令牌,用户登录授权成功后,由服务器返回 |
是 |
|
data |
String |
为JSON格式 ① |
是 |
|
sign_method |
String |
签名的摘要算法,可选值为:hmac,md5,② |
否 |
|
sign |
String |
签名 |
否 |
|
timestamp |
String |
时间戳,格式为yyyy-MM-dd HH:mm:ss,时区为GMT+8,例如:2016-01-01 12:00:00 |
否 |
|
version |
String |
版本号,可选值:2.0 |
否 |
① data参数JSON数据
|
参数名称 |
参数类型 |
描述 |
是否必须 |
|
db_name |
String |
数据库连接名称 |
是 |
|
proc_name |
String |
存储过程名称 |
是 |
|
method |
String |
执行方法,可选值为:open_proc、exec_proc、exec_func |
是 |
|
params |
String |
参数,JSON 数组[{"name":"参数名称","value":"参数值"}] |
否 |
{
"db_name": "DB_MSSQL", //数据库连接名称
"proc_name": "sp_Test1", //存储过程名称
"method": "open_proc", //open_proc、exec_proc、exec_func
"params": [{ //输入参数,输出参数不用填
"name": "@p1",
"value": 10
}, {
"name": "@p2",
"value": "abcdefg"
}]
}
② 签名算法
http://open.taobao.com/doc2/detail.htm?articleId=101617&docType=1&treeId=1
4)、服务端应答数据格式:
{
"status": 0, //状态码
"message": "OK", //状态描述
"rows_affected": 2, //影响的行
"params": [{ //输出参数
"name": "@p3",
"value": "110"
}],
"meta": [
["字段1", "ftGuid"],
["字段2", "ftString", 50],
["字段3", "ftString", 20],
["字段4", "ftBlob"]
],
"data": [
["字段1数据", "字段2数据", "字段3数据", "字段4数据"],
["字段1数据", "字段2数据", "字段3数据", "字段4数据"]
]
}
4.3【查询数据】db/opensql
1)、接口说明:
2)、HTTP请求方式:GET/POST
3)、输入参数说明:
|
参数名称 |
参数类型 |
描述 |
是否必须 |
|
token |
String |
令牌,用户登录授权成功后,由服务器返回 |
是 |
|
data |
String |
为JSON格式 ① |
是 |
|
sign_method |
String |
签名的摘要算法,可选值为:hmac,md5,② |
否 |
|
sign |
String |
签名 |
否 |
|
timestamp |
String |
时间戳,格式为yyyy-MM-dd HH:mm:ss,时区为GMT+8,例如:2016-01-01 12:00:00 |
否 |
|
version |
String |
版本号,可选值:2.0 |
否 |
① data参数JSON数据
|
参数名称 |
参数类型 |
描述 |
是否必须 |
|
db_name |
String |
数据库连接名称 |
是 |
|
sql_command_id |
String |
sql 编号 |
是 |
|
page_size |
int |
每页数据条数 |
否 |
|
page_index |
int |
第 x 页 |
否 |
{
"db_name": "DB_MSSQL", //数据库连接名称
"sql": "SELECT * FROM my_table WHERE a=:a AND b=:b", 或者
"sql_command_id": "SQL001",
"page_size": 10, //分页大小,为0,则不分页
"page_index":0,
"params": [{ //输入参数,输出参数不用填
"name": "a",
"value": “abc”
}, {
"name": "b",
"value": "123456"
}]
}
4)、服务端应答数据格式:
{
"status": 0,
"message": "ok",
"count": 10, //数据行数
"total": 1000, //数据总数
"meta": [
["字段1", "ftGuid"],
["字段2", "ftString", 50],
["字段3", "ftString", 20],
["字段4", "ftBlob"]
],
"data": [
["字段1数据", "字段2数据", "字段3数据", "字段4数据"],
["字段1数据", "字段2数据", "字段3数据", "字段4数据"]
]
}
4.4【查询数据】db/execsql
1)、接口说明:
2)、HTTP请求方式:GET/POST
3)、输入参数说明:
|
参数名称 |
参数类型 |
描述 |
是否必须 |
|
token |
String |
令牌,用户登录授权成功后,由服务器返回 |
是 |
|
data |
String |
为JSON格式 ① |
是 |
|
sign_method |
String |
签名的摘要算法,可选值为:hmac,md5,② |
否 |
|
sign |
String |
签名 |
否 |
|
timestamp |
String |
时间戳,格式为yyyy-MM-dd HH:mm:ss,时区为GMT+8,例如:2016-01-01 12:00:00 |
否 |
|
version |
String |
版本号,可选值:2.0 |
否 |
① data参数JSON数据
{
"db_name": "DB_MSSQL", //数据库连接名称
"sql": "UPDATE my_table SET a=:a WHERE b=:b", //or "DELETE FROM my_table WHERE a=:a AND b=:b"
"sql_command_id": "SQL002",
"params": [{ //输入参数,输出参数不用填
"name": "a",
"value": “abc”
}, {
"name": "b",
"value": "123456"
}]
}
4)、服务端应答数据格式:
{"status":0,"message":"ok","rows_affected":1}
4.5【注销】user/logout
1)、接口说明:
2)、HTTP请求方式:GET/POST
3)、输入参数说明:
|
参数名称 |
参数类型 |
描述 |
是否必须 |
|
token |
string |
令牌,用户登录授权成功后,由服务器返回 |
是 |
|
version |
string |
版号码,可选值:2.0 |
否 |
4)、服务端应答:{"status":0,"message":"ok","rows_affected":1}
4.6【短信验证】alidayu/sendsms
1)、接口说明:
2)、HTTP请求方式:GET/POST
3)、输入参数说明:
|
参数名称 |
参数类型 |
描述 |
是否必须 |
|
num |
string |
手机号码 |
是 |
|
token |
string |
令牌,获取验证码后,由服务器返回 |
是 |
|
code |
string |
短信验证码 |
是 |
4)、请求验证码示例:
http://127.0.0.1:9981/rest/alidayu/sendsms?num=1888888888
5)、服务端应答:{"status":0,"message":"ok","token":"0F2752F4AA2E40AA931DE927756EB5D1"}
6)、提交验证码示例:
http://127.0.0.1:9981/rest/alidayu/sendsms?code=564732&token=0F2752F4AA2E40AA931DE927756EB5D1
7)、服务端应答:{"status":0,"message":"ok"}
5、REST 接口二次开发
1)、DLL Demo
library HelloRest; uses
System.SysUtils,
Winapi.Windows,
System.NetEncoding,
rtcConn,
rtcInfo,
rtcHttpSrv,
rtcMW.Server.Consts in '..\..\rtcMW.Server.Consts.pas',
rtcMW.REST.Plugin in '..\..\REST\rtcMW.REST.Plugin.pas',
rtcMW.REST.Types in '..\..\REST\rtcMW.REST.Types.pas' ,
rtcMW.Server.LogWriter in '..\..\rtcMW.Server.LogWriter.pas',
rtcMW.Server.Settings in '..\..\rtcMW.Server.Settings.pas',
rtcMW.Server.SharedMemory in '..\..\rtcMW.Server.SharedMemory.pas'; {$R *.res} type
THelloPlugin = class(TPlugin)
private
constructor Create; override;
function GetPluginInfo: TPluginInfo; override;
procedure ProcessRequest(Sender: TRtcConnection); override;
function CheckRequest(Sender: TRtcConnection): Boolean; override;
end; { THelloPlugin } constructor THelloPlugin.Create;
begin
end; function THelloPlugin.CheckRequest(Sender: TRtcConnection): Boolean;
begin
inherited;
//这里可用来检查客户端请求参数是否合法
Result := True;
end; function THelloPlugin.GetPluginInfo: TPluginInfo;
begin
Result.Category := '演示';
Result.Name := '哈喽';
Result.Method := 'GET';
Result.FileName := '/test';
Result.Params := 'say';
Result.Description := '这是一个 DLL 插件演示';
Result.Example := 'http://localhost:8081/test?say=你好';
end; procedure THelloPlugin.ProcessRequest(Sender: TRtcConnection);
var
Param: string;
JsonObj: TRtcRecord;
begin inherited; with TRtcHttpServer(Sender) do
begin
Param := TURLEncoding.URL.Decode(Request.Query.Value['say']);
JsonObj := TRtcRecord.Create;
try
JsonObj.asInteger['status']:=STATUS_OK;
JsonObj.asText['message']:= '这是一个 DLL REST 插件演示:参数 say = ' + Param;
Write(JsonObj.ToJSON);
finally
FreeAndNil(JsonObj);
end; end; end; function RegisterPlugin: IPlugin; stdcall;
begin
Result := THelloPlugin.Create;
end; exports
RegisterPlugin;
begin end.
全能中间件 REST API 使用手册的更多相关文章
- WebDriver基本API使用手册(基于Java和C#)
WebDriver基本API使用手册(基于Java和C#) http://www.docin.com/p-747728551.html
- Google地图接口API之Google地图 API 参考手册(七)
Google 地图API 参考手册 地图 构造函数/对象 描述 Map() 在指定的 HTML 容器中创建新的地图,该容器通常是一个DIV元素. 叠加层 构造函数/对象 描述 Marker 创建一个标 ...
- PJSUA2开发文档--第十二章 PJSUA2 API 参考手册
12 PJSUA2 API 参考手册 12.1 endpoint.hpp PJSUA2基本代理操作. namespace pj PJSUA2 API在pj命名空间内. 12.1.1 class En ...
- Dubbo -- 系统学习 笔记 -- API参考手册
Dubbo -- 系统学习 笔记 -- 目录 API参考手册 配置API 注解API 模型API 上下文API 服务API API参考手册 Dubbo的常规功能,都保持零侵入,但有些功能不得不用API ...
- PolarDB阿里初赛问题记录 PolarDB 阿里 中间件 比赛 性能 工程手册
Contents 这篇纯碎是碎碎念记录. 每个value都是4KB,总共最多会写6400W个value,算下来就是64 * 1000 * 1000 * 4 * 1024 Bytes ≈ 256G. 每 ...
- java 学习众多API和手册资源下载
这个资源包里面有jdk api 还有SSH框架的手册,数据库的手册,Jquery手册等等,还有正则表达式等, 希望可以帮助有需要的人 链接:http://希望pan.baidu.com/s/1pJ60 ...
- Unity中文API参考手册
转载请标明原文地址:http://www.cnblogs.com/zhangyukof/p/6835582.html Unity5中文脚本手册 网页版 Unity API 执行顺序: Unity5中 ...
- 咏南跨平台中间件REST API
主旨 1)为了中间件支持跨操作系统部署,客户端支持跨操作系统.跨设备.跨开发语言,特制订本REST API规约. 2)所有接口均支持HTTP GET\POST调用. 3)调用示例为DELPHI代码,其 ...
- 全能中间件v19.5.7 正式版发布
v19.5.7 更新=========================1.新增 支持更多微信公众号API.2.优化 AccessToken 刷新机制.3.修复 微信公众号“消息加解密方式”为“安全模式 ...
随机推荐
- SignalR的几种方式_转自:https://www.cnblogs.com/zuowj/p/5674615.html
SignalR有三种传输模式: LongLooping(长轮询). WebSocket(HTML5的WEB套接字). Forever Frame(隐藏框架的长请求连接), 可以在WEB客户端显式指定一 ...
- Linux压缩和解压类指令
一.gzip / gunzip 指令 gzip 用于压缩文件,gunzip 用于解压文件. 基本语法gizp 文件 (功能描述:只能将文件压缩为*.gz文件)gunzip 文件.gz (功能描述 ...
- Assignment5: 使用Visual Studio 进行可编码的UI测试
一.实验目的: 使用Visual Studio 可编码的UI测试功能创作自动化测试 二.实验原理:黑盒测试 三.实验需求:win8 app.Visual Studio Ultimate 2012/20 ...
- PostgreSQL远程连接,发生致命错误:没有用于主机“…”,用户“…”,数据库“…”,SSL关闭的pg_hba.conf记录
PostgreSQL远程连接方法 有时候在远程连接时,会报Error connecting to the server:致命错误:没有用于主机“…”,用户“…”,数据库“…”,SSL关闭的pg_hba ...
- file_get_contents("php://input")
$data = file_get_contents("php://input"); php://input 是个可以访问请求的原始数据的只读流. POST 请求的情况下,最 ...
- Python flask模块接口开发学习总结
引言 Flask 是一个简单且十分强大的Python web 框架.它被称为微框架,“微”并不是意味着把整个Web应用放入到一个Python文件,微框架中的“微”是指Flask旨在保持代码简洁且易于扩 ...
- java 判断list是否为空
问题: 之前用 list!=null 来判断list是否为空,但发现,定义一个list后,即使里面并没有加入任何元素,返回的结果仍旧是 true, 其实,本意是希望在没有任何元素时,返回 false, ...
- CMU Database Systems - Storage and BufferPool
Database Storage 存储分为volatile和non-volatile,越快的越贵越小 那么所以要解决的第一个问题就是,如果尽量在有限的成本下,让读写更快些 意思就是,尽量读写volat ...
- linux cat 文件编码
test.log是utf-16的编码 cat test.log会报错 但是我们可以cat的时候指定编码格式 iconv -f 文件编码 -t 终端编码 input.log iconv -f utf-1 ...
- 【转】45个实用的JavaScript技巧、窍门和最佳实践
原文:https://colobu.com/2014/09/23/45-Useful-JavaScript-Tips,-Tricks-and-Best-Practices/ 目录 [−] 列表 第一次 ...