使用kbmmw 生成客戶端delphi函數原型

 

 

前面咱們講了使用swagger 生成java,php 的客戶端調用函數原型。php

對於delphi,其實很遺憾,不能直接生成客戶端函數原型代碼。java

沒關係,解鈴還須繫鈴人,既然是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;

編譯,運行。this

在瀏覽器裏面輸入http://127.0.0.1/xalionrest/delphiurl

看看咱們的函數原型都出來了。spa

咱們把這個文件保存成pas 文件,放到客戶端目錄。3d

打開客戶端工程。加入生成的單元。

客戶端調用代碼就很是簡單了。

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;

 

 

 

 

不能再簡單了,不然你們就要失業了。

相關文章
相關標籤/搜索