全能中间件 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)、请求示例:

http://127.0.0.1:9981/rest/user/login?user_name=admin&password=c4ca4238a0b923820dcc509a6f75849b&version=2.0

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 使用手册的更多相关文章

  1. WebDriver基本API使用手册(基于Java和C#)

    WebDriver基本API使用手册(基于Java和C#) http://www.docin.com/p-747728551.html

  2. Google地图接口API之Google地图 API 参考手册(七)

    Google 地图API 参考手册 地图 构造函数/对象 描述 Map() 在指定的 HTML 容器中创建新的地图,该容器通常是一个DIV元素. 叠加层 构造函数/对象 描述 Marker 创建一个标 ...

  3. PJSUA2开发文档--第十二章 PJSUA2 API 参考手册

    12 PJSUA2 API 参考手册 12.1 endpoint.hpp PJSUA2基本代理操作.  namespace pj PJSUA2 API在pj命名空间内. 12.1.1 class En ...

  4. Dubbo -- 系统学习 笔记 -- API参考手册

    Dubbo -- 系统学习 笔记 -- 目录 API参考手册 配置API 注解API 模型API 上下文API 服务API API参考手册 Dubbo的常规功能,都保持零侵入,但有些功能不得不用API ...

  5. PolarDB阿里初赛问题记录 PolarDB 阿里 中间件 比赛 性能 工程手册

    Contents 这篇纯碎是碎碎念记录. 每个value都是4KB,总共最多会写6400W个value,算下来就是64 * 1000 * 1000 * 4 * 1024 Bytes ≈ 256G. 每 ...

  6. java 学习众多API和手册资源下载

    这个资源包里面有jdk api 还有SSH框架的手册,数据库的手册,Jquery手册等等,还有正则表达式等, 希望可以帮助有需要的人 链接:http://希望pan.baidu.com/s/1pJ60 ...

  7. Unity中文API参考手册

    转载请标明原文地址:http://www.cnblogs.com/zhangyukof/p/6835582.html  Unity5中文脚本手册 网页版 Unity API 执行顺序: Unity5中 ...

  8. 咏南跨平台中间件REST API

    主旨 1)为了中间件支持跨操作系统部署,客户端支持跨操作系统.跨设备.跨开发语言,特制订本REST API规约. 2)所有接口均支持HTTP GET\POST调用. 3)调用示例为DELPHI代码,其 ...

  9. 全能中间件v19.5.7 正式版发布

    v19.5.7 更新=========================1.新增 支持更多微信公众号API.2.优化 AccessToken 刷新机制.3.修复 微信公众号“消息加解密方式”为“安全模式 ...

随机推荐

  1. 4、vueJs基础知识04

    简单的目录结构: |-index.html |-main.js 入口文件 |-App.vue vue文件(组件),官方推荐命名法(首字母大写) |-components      组件存放的文件夹 | ...

  2. [spring-boot] 健康状况监控

    pom文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>s ...

  3. QtCore概述

    所有其他Qt模块都依赖于这个模块. 要包含模块类的定义,请使用以下指令: include < QtCore > 如果您使用qmake来构建您的项目,则默认将QtCore包含在内. 核心功能 ...

  4. cache-control: max-age=1,s-maxage=1

    cache-control: max-age=1,s-maxage=1

  5. python 设计模式之工厂模式 Factory Pattern (简单工厂模式,工厂方法模式,抽象工厂模式)

    十一回了趟老家,十一前工作一大堆忙成了狗,十一回来后又积累了一大堆又 忙成了狗,今天刚好抽了一点空开始写工厂方法模式 我看了<Head First 设计模式>P109--P133 这25页 ...

  6. Socket: java Socket的isConnected()、和isClosed()判断是否在线的问题(转)

    首先,很多初学者都会用这两个API来判断对方是否在线,但是经过我的实践,此API并不能实时判断是否在线的状态. 经过百度查询资料后,得出结论: 事实上这些方法都是访问socket在内存驻留的状态,当s ...

  7. Nexus3.X忘记admin密码找回

    一.问题背景 nexus3 这种东西,传完一次,很少动了,很容易忘记密码,不要急有方法找回. 官方网站关于解决该问题的方法: https://support.sonatype.com/hc/en-us ...

  8. mac php7.2 安装mcrypt扩展

    安装: brew install libmcrypt 下载mcrypt扩展源码 http://pecl.php.net/package/mcrypt 解压后 进入目录: phpize ./config ...

  9. jenkins用户和权限管理

    添加用户 进入管理界面,选择manage users,添加用户 将人和角色绑定 用户和项目绑定 角色管理 可以针对不同的站点对不同的人赋权 添加角色并赋权 将角色赋权给对应的用户 使用新添加的这个用户 ...

  10. php5.6.30环境报错Call to undefined function ImageCreate() 编译安装 gd库

    php5..30环境报错Call to undefined function ImageCreate() 编译安装 gd库 发现php5..30没有加载gd库 [root@cn_vs_web04:/u ...