全能中間件 REST API 使用手冊

全能中間件 REST API 使用手冊算法

Ver:17.6.24 sql

技術支持QQ:64445322  數據庫

QQ羣:339616649編程

 

   任何第三方應用或網站均可以經過使用開放API爲用戶提供實時優質的服務。 全部的API都是基於REST基礎的接口規範,可兼容多種編程語言。json

 

一、參數編碼api

全部的請求和響應數據編碼皆爲utf-8格式,url裏的全部參數值請作URIEncode編碼;數組

各個參數請進行URL 編碼(UTF-8),編碼時請遵照 RFC 1738。服務器

 

二、HTTP MIME類型:Content-type: application/json; charset=utf-8app

三、服務地址:http(s)://127.0.0.1:9981/rest編程語言

四、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"}

 

五、REST 接口二次開發

1)、DLL Demo

 1 library HelloRest;
 2 
 3 uses
 4   System.SysUtils,
 5   Winapi.Windows,
 6   System.NetEncoding,
 7   rtcConn,
 8   rtcInfo,
 9   rtcHttpSrv,
10   rtcMW.Server.Consts in '..\..\rtcMW.Server.Consts.pas',
11   rtcMW.REST.Plugin in '..\..\REST\rtcMW.REST.Plugin.pas',
12   rtcMW.REST.Types in '..\..\REST\rtcMW.REST.Types.pas' ,
13   rtcMW.Server.LogWriter in '..\..\rtcMW.Server.LogWriter.pas',
14   rtcMW.Server.Settings in '..\..\rtcMW.Server.Settings.pas',
15   rtcMW.Server.SharedMemory in '..\..\rtcMW.Server.SharedMemory.pas';
16 
17 {$R *.res}
18 
19 type
20   THelloPlugin = class(TPlugin)
21   private
22     constructor Create; override;
23     function GetPluginInfo: TPluginInfo; override;
24     procedure ProcessRequest(Sender: TRtcConnection); override;
25     function CheckRequest(Sender: TRtcConnection): Boolean; override;
26   end;
27 
28   { THelloPlugin }
29 
30 constructor THelloPlugin.Create;
31 begin
32 end;
33 
34 function THelloPlugin.CheckRequest(Sender: TRtcConnection): Boolean;
35 begin
36   inherited;
37   //這裏可用來檢查客戶端請求參數是否合法
38   Result := True;
39 end;
40 
41 function THelloPlugin.GetPluginInfo: TPluginInfo;
42 begin
43   Result.Category := '演示';
44   Result.Name := '哈嘍';
45   Result.Method := 'GET';
46   Result.FileName := '/test';
47   Result.Params := 'say';
48   Result.Description := '這是一個 DLL 插件演示';
49   Result.Example := 'http://localhost:8081/test?say=你好';
50 end;
51 
52 procedure THelloPlugin.ProcessRequest(Sender: TRtcConnection);
53 var
54   Param: string;
55   JsonObj: TRtcRecord;
56 begin
57 
58   inherited;
59 
60   with TRtcHttpServer(Sender) do
61   begin
62     Param := TURLEncoding.URL.Decode(Request.Query.Value['say']);
63     JsonObj := TRtcRecord.Create;
64     try
65       JsonObj.asInteger['status']:=STATUS_OK;
66       JsonObj.asText['message']:= '這是一個 DLL REST 插件演示:參數 say = ' + Param;
67       Write(JsonObj.ToJSON);
68     finally
69       FreeAndNil(JsonObj);
70     end;
71 
72   end;
73 
74 end;
75 
76 
77 function RegisterPlugin: IPlugin; stdcall;
78 begin
79   Result := THelloPlugin.Create;
80 end;
81 
82 exports
83   RegisterPlugin;
84 begin
85 
86 end.
87 
88  
相關文章
相關標籤/搜索