詠南跨平臺中間件REST API

 

主旨... 1sql

查詢數據接口... 1編碼

功能... 1url

JSON樣式... 2spa

返回值... 3操作系統

DELPHI調用示例... 3rest

提交數據接口... 4code

功能... 4orm

JSON樣式... 4中間件

返回值... 4blog

下載文件接口... 5

功能... 5

JSON樣式... 5

返回值... 5

DELPHI調用示例... 5

上傳文件接口... 6

功能... 6

DELPHI調用示例... 6

返回值... 7

 

主旨

1)爲了中間件支持跨操做系統部署,客戶端支持跨操做系統、跨設備、跨開發語言,特制訂本REST API規約。

2)全部接口均支持HTTP GET\POST調用。

3)調用示例爲DELPHI代碼,其餘語言可參照編寫。

4)JSON字符串的字符編碼統一爲UTF8。

5)因做者水平有限,不慮之處,懇請指正。

6)其餘接口,可參照定義。

查詢數據接口

功能

能夠一次查詢返回1~N個表的數據,支持主從表數據查詢。

JSON樣式

cols:字段定義,包括字段的名稱、長度和類型。

rows:表數據。

{

    "tables": [

        {

            "cols": [

                {

                    "name": "goodsid",

                    "size": 8,

                    "type": "string"

                },

                {

                    "name": "goodsname",

                    "size": 50,

                    "type": "string"

                }

                

            ],

            "rows": [

                {

                    "goodsid": "100036",

                    "goodsname": "秋冬四件套哦",

                 },

                {

                    "goodsid": "100050",

                    "goodsname": "天堂傘",

                }

            ]

        },

        {

            "cols": [

                {

                    "name": "unitid",

                    "size": 4,

                    "type": "string"

                },

                {

                    "name": "unitname",

                    "size": 6,

                    "type": "string"

                }

            ],

            "rows": [

                {

                    "unitid": "11",

                    "unitname": "個"

                },

                {

                    "unitid": "12",

                    "unitname": "雙"

                }

            ]

        }

    ]

}

返回值

成功:JSON表數據

失敗:{」return」:」false」,」error」:」錯誤信息」}

DELPHI調用示例

procedure TForm1.Button2Click(Sender: TObject);

begin

  var url, sql1, sql2: string;

  sql1 := TNetEncoding.URL.Encode('select * from tgoods');

  sql2 := TNetEncoding.URL.Encode('select * from tunit');

  url := FUrl + 'rest?accountno=1&count=1&plugid=9999&funcid=' + IntToStr(cmd_rest_query) + '&sql1=' + sql1 + '&sql2=' + sql2;

  var s: string := IdHTTP1.Get(url);

  Memo1.Lines.Add(s);

end;

提交數據接口

功能

能夠一次提交1~N個表的修改數據。

JSON樣式

table:提交的表名。

rows:提交的數據。

{

    "deltas":

    [

        {

            "table": "tunit",

            "rows":

            [

                {"action": "modify", "original": {"unitid":"11","unitname":"個"}, "current": {"unitname":"中"}},

                {"action": "delete", "original": {"unitid":"66","unitname":"國"}},

                {"action": "insert", "current":{"unitid":"13","unitname":"人"}}

            ]

        }

        ......

    ]

}

返回值

成功:{」return」:」true」}

失敗:{」return」:」false」,」error」:」錯誤信息」}

 

下載文件接口

功能

能夠一次下載1~N個文件。

JSON樣式

{"files":[

      {"fielname1":"文件名1","file1":"BASE64文件流1"},

      {"fielname2":"文件名1","file2":"BASE64文件流2"}

      ]

}

返回值

成功:JSON文件數據

失敗:失敗:{」return」:」false」,」error」:」錯誤信息」}

DELPHI調用示例

procedure TForm1.Button10Click(Sender: TObject);

//{"files":[

//   {"fielname1":"文件名1","file1":"BASE64文件流1"},

//   {"fielname2":"文件名1","file2":"BASE64文件流2"}

//   ]

//}

begin

  var s: string := IdHTTP1.get(FUrl + 'rest?plugid=8888&funcid=5&filenum=1&filename1=1.exe');

  var jo: JsonDataObjects.TJsonObject := JsonDataObjects.TJsonObject.Parse(s) as JsonDataObjects.TJsonObject;

  var i: Integer;

  var filename, filecontent: string;

  var dd: TIdDecoderMIME := TIdDecoderMIME.Create(nil);

  var ms: TMemoryStream := TMemoryStream.Create;

  try

    for i := 0 to jo.A['files'].Count - 1 do

    begin

      filename := jo.A['files'].O[i].s['filename' + (i + 1).ToString];

      filecontent := jo.A['files'].O[i].s['file' + (i + 1).ToString];

      dd.DecodeStream(filecontent, ms);   //base64解碼

      ms.SaveToFile(filename);   //保存下載的文件

      ms.Clear;

    end;

  finally

    dd.Free;

    ms.Free;

  end;

end;

上傳文件接口

功能

能夠一次上傳1~N個文件

DELPHI調用示例

上傳文件使用MultiPart Form-Data。

procedure TForm1.Button9Click(Sender: TObject);

begin

  if OpenDialog1.Execute then

  begin

    var ms: TIdMultiPartFormDataStream := TIdMultiPartFormDataStream.Create;

    ms.AddFile('file1', OpenDialog1.FileName);

    IdHTTP1.Post(FUrl + 'rest?plugid=8888&funcid=6&filenum=1&filename1=1.exe', ms);

    ms.free;

  end;

end;

返回值

成功:{」return」:」true」}

失敗:{」return」:」false」,」error」:」錯誤信息」}

相關文章
相關標籤/搜索