zoukankan      html  css  js  c++  java
  • 使用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

    运行结果

    显示服务端图像

    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
       c:IkbmMWSmartClient;
       s:string;
       xalionrest: TXALIONREST;
       b:Tbytes;
       NewG: TJPEGImage;
    
       bs:Tbytesstream;
    begin
       Transport.Host:=eIP.Text;
    
       xalionrest:= TXALIONREST.Create( Transport);
    
    
       try
       b:=xalionrest.GetImage('Boa') ;
    
        bs:=Tbytesstream.Create(b);
        newg:=TJPEGImage.Create;
        newg.LoadFromStream(bs);
        image1.Picture.Graphic.Free;
        image1.Picture.Graphic:=newg;
       finally
         bs.Free;
         newg.Free;
         xalionrest.Free;
       end;
    
    
    end;

     

    不能再简单了,否则大家就要失业了。

  • 相关阅读:
    Install OpenCV 3.0 and Python 2.7+ on OSX
    Install OpenCV 3.0 and Python 2.7+ on Ubuntu
    完美商业计划书全攻略
    No module named zope.interface error的解决
    nginx flv点播服务器搭建
    关于Apple开发者的D-U-N-S Number
    小而美的Promise库——promiz源码浅析
    为什么JavaScript里面0.1+0.2 === 0.3是false
    JavaScript取出字符串中括号里的内容
    js数据结构与算法--递归
  • 原文地址:https://www.cnblogs.com/xalion/p/10320313.html
Copyright © 2011-2022 走看看