使用kbmmw 生成客户端delphi函数原型
2024-10-15 11:04:43
前面我们讲了使用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(,);
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;
不能再简单了,否则大家就要失业了。
最新文章
- $(";";).click与onclick的区别示例介绍
- Python多行注释
- paip.java c# .net php python调用c++ c dll so windows api 总结
- CentOS中查看系统资源占用情况的命令
- (转)MyEclipse2014配置Tomcat开发JavaWeb程序JSP以及Servlet
- lua简洁的功能(两)
- 比较全的 C# 操作 Word的代码
- struts2中struts.xml 放置路径的问题
- Android TCP/IP 扫盲教程
- 关于webconsole报../website/console.go:35: undefined: ssh.InsecureIgnoreHostkey 错误解决方案
- Mathematica/偏导数/最小二乘法(线性回归)
- Struts2环境搭建和运用
- jsonp 跨域 jsonp 发音
- JS-隐士类型转换‘1’+1、‘1’-1、++‘1’为什么不一样?
- win7 怎么设置开机直接进入桌面? netplwiz 命令
- C#Lambda表达式详解
- with check(转)
- 安装SQL Server 2016出错提示:需要安装oracle JRE7 更新 51(64位)或更高版本完美解决办法
- JSTL详解(二)
- Dll 使用 PChar 参数的小例子 - 回复 ";linximf"; 的问题