使用kbmmw 生成客户端delphi函数原型
Posted xalion
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用kbmmw 生成客户端delphi函数原型相关的知识,希望对你有一定的参考价值。
前面我们讲了使用swagger 生成java,php 的客户端调用函数原型。
对于delphi,其实很遗憾,不能直接生成客户端函数原型代码。
不要紧,解铃还须系铃人,既然是kbmmw 自己生成的,我们就自产自销,
为kbmmw 客户端生成函数原型。也为我们前面说的双引擎提供服务。
闲话少说。
很简单
[kbmMW_Rest(‘method:get, path: "delphi", responseMimeType:"text/plain"‘)] function DelphiAPI:string;
function TkbmMWCustomHTTPSmartService1.DelphiAPI: string; var unitName:string; begin // Return Delphi client stub unit for all methods in this service marked with // kbmMW_Method attribute. // Add ‘servers: [ "url1", "url2",.. "urln" ]‘ to ASettings if you want to // embed server location information in the comments of the returned unit. Result:=TkbmMWSmartDelphiStubGenerator.GenerateDelphi(‘‘,self,unitName); SetResponseFileName(unitName); end;
编译,运行。
在浏览器里面输入http://127.0.0.1/xalionrest/delphi
看看我们的函数原型都出来了。
我们把这个文件保存成pas 文件,放到客户端目录。
打开客户端工程。加入生成的单元。
客户端调用代码就非常简单了。
procedure TForm1.Button1Click(Sender: TObject); var c:IkbmMWSmartClient; ca:TkbmMWSmartClientCaller; s:string; xalionrest: TXALIONREST; begin Transport.Host:=eIP.Text; xalionrest:= TXALIONREST.Create( Transport); s:=xalionrest.EchoString(‘abc‘); memo1.Lines.Add(‘EchoString(‘‘abc‘‘)=‘+ s ); s:=xalionrest.version; memo1.Lines.Add(‘version=‘+ s ); s:=xalionrest.AddNumbers(34,7); memo1.Lines.Add(‘AddNumbers(34,7)=‘+ s ); xalionrest.Free; end;
还是那么的完美。
我们还可以使用客户端访问服务器端的数据库服务
procedure TForm1.Button2Click(Sender: TObject); var xalionrest: TXALIONREST; begin Transport.Host:=eIP.Text; xalionrest:= TXALIONREST.Create( Transport); try mt:=xalionrest.querytable(‘customer‘,‘‘); mt.Active:=True; datasource1.DataSet:=mt; finally xalionrest.Free; end; end
运行结果
不能在简单了,否则大家就要失业了。
以上是关于使用kbmmw 生成客户端delphi函数原型的主要内容,如果未能解决你的问题,请参考以下文章
REST easy with kbmMW #20 – OpenAPI and Swagger UI