全能中间件 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. leaflet使用手册

    谷歌地图加载地址: 谷歌交通地图地址:http://www.google.cn/maps/vt/pb=!1m4!1m3!1i{z}!2i{x}!3i{y}!2m3!1e0!2sm!3i38007257 ...

  2. Linux 组的管理

    一.Linux组基本介绍 在Linux中每个用户必须属于一个组,不能独立于组外.在Linux中每个文件有所有者,所在组,其他组的概念 1)所有者 2)所在组 3)其他组 4)改变用户的所在组 二.文件 ...

  3. ls命令的简单实现

    ls命令的简单实现 目标:简单的实现ls命令 实现的mic_ls命令主要功能 1.循环遍历目录 2.列出目标目录所有的子目录和文件 3.列出文件的文件权限,所有者,文件大小等详细信息 参数 -r 循环 ...

  4. QTextToSpeech Win7奔溃

    在linux下,它是调用speech-dispatcher.在其它不同的平台上,调用各自平台的TTS引擎.所以在使用的时候,要确保本地的TTS引擎是可用的. 本地TTS引擎不可用可能会在声明QText ...

  5. Java从指定URL下载文件并保存到指定目录

    1.基本流程 当我们想要下载网站上的某个资源时,我们会获取一个url,它是服务器定位资源的一个描述,下载的过程有如下几步: (1)客户端发起一个url请求,获取连接对象. (2)服务器解析url,并且 ...

  6. Grafana 在添加邮件和钉钉报警之后不报警的原因是没有重启grafana 不生效重启。

    即使在grafana页面上面添加也需要重启.配置邮件配置文件更需要重启. systemctl restart grafana-server.service

  7. JFinal-layui极速开发企业应用管理系统

    Jfinal-layui 官网:http://www.qinhaisenlin.com/ 项目:https://gitee.com/QinHaiSenLin/Jfinal-layui 介绍 JFina ...

  8. 数据包分析中Drop和iDrop的区别

    数据包分析中Drop和iDrop的区别   在数据包分析中,Drop表示因为过滤丢弃的包.为了区分发送和接受环节的过滤丢弃,把Drop又分为iDrop和Drop.其中,iDrop表示接受环节丢弃的包, ...

  9. SynchronizedStack -- tomcat8同步栈

    同步栈(安全栈): org.apache.tomcat.util.collections.SynchronizedStack通过stack栈锁来控制栈中获取的类T.通过push.pop和clear方法 ...

  10. axios和drf结合的增删改查

    增删改查 查: 前端实例: mounted() { //获取所有数据 // var Base_url = 'http://paas.bktst.sh.sgcc.com.cn/t/files-check ...