使用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函数原型的主要内容,如果未能解决你的问题,请参考以下文章

kbmmw 中实现客户端自动更新

kbmMW基于硬件生成随机数

REST easy with kbmMW #20 – OpenAPI and Swagger UI

kbmmw 与extjs 通过JSON Base64 显示图片

kbmmw中向服务器端传递对象的一种简单方式

一窥kbmmw中的 smart service