欢迎来到天天文库
浏览记录
ID:13373594
大小:290.50 KB
页数:25页
时间:2018-07-22
《李维_delphi_xe程序设计系列_2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、http://Datasnap.5d6d.comQQ群:67803772李维DelphiXE程序设计系列2-开发DataSnap/REST服务器 在上次的文章中讨论了如何把传统的Delphi主从架构应用程序逐渐转换为DataSnapJSON服务器,在本篇文章中让我们正式讨论如何使用DelphiXE开发DataSnap/REST服务器,由于这其中牵涉到非常多的技术,因此我们将花数篇的篇幅来讨论。现在就让我们从DataSnap/REST服务器开始。开发DataSnap服务器 DelphiXE版的DataSnap允许开发人员同时在DataSnap服务
2、器中实作RESTful架构的服务器,如此一来DataSnap服务器不但可以在网络内部做为多层的服务服务器,也可以让网络外部的客户端使用REST的方式来存取服务。要在DelphiXE中建立DataSnap/REST服务器,请点选Files
3、New菜单,在DataSnapServer选项中选择DataSnapServer图像,如下图所示: Delphihttp://Datasnap.5d6d.comQQ群:67803772XE提供三种不同的服务器型态,分别是以VCL应用程序实作的服务器,实作为主控程序的服务器以及实作成Windows服务应用程
4、序的服务器,开发人员可根据自己的需求选择建立适当的服务器型态,在本篇文章中让我们建立VCL应用程序型态的服务器: 点选Next按钮之后DataSnap精灵会如下图询问需要支持的通讯协议,是否使用安全验证功能以及是否要预先建立范例服务方法,让我们点选下方的SelectAll以选择建立所有的功能,如下图所示: http://Datasnap.5d6d.comQQ群:67803772 点选Next按钮,DataSnap精灵会如下图询问TCP/IP和HTTP使用的通信埠,内定上TCP/IP使用211而HTTP则使用8080,开发人员可
5、根据自己的需求设定这两个通信埠,或是点选FindOpenPort按钮让DataSnap精灵帮忙搜寻可使用的通信埠: http://Datasnap.5d6d.comQQ群:67803772 接着DataSnap精灵会询问开发人员实作服务方法的类别,开发人员可以选择实作于TComponent类别,TDataModule类别或是TDSServerModule类别,在本文章中我们选择实作于TDSServerModule: http://Datasnap.5d6d.comQQ群:67803772 点选Finish按钮之后,DelphiXE便会建
6、立相对应的项目,我们开启ServerContainerUnit的话就可以看到其中包含了如下组件,其中的TDSServer,TDSTCPServerTransport以及TDSServerClass类别组件在Delphi2010中就存在了,新的TDSHTTPService类别组件则提供了HTTP/HTTPS通讯协议的支持,而新的TDSAuthenticationManager类别组件则提供安全验证功能,在稍后的文章中我们会说明如何使用它。 现在DataSnap精灵会在项目的ServerMethodsUnit程序单元中产生两个范例方法,E
7、choString和ReverseString。现在让我们在这个程序单元中加入一个新的服务方法『取得部落格文章名称』,如下所示:public{Publicdeclarations}functionEchoString(Value:string):string;http://Datasnap.5d6d.comQQ群:67803772functionReverseString(Value:string):string;function取得部落格文章名称:TJSONArray;接着实作『取得部落格文章名称』方法,如下所示:functionTServerM
8、ethods2.取得部落格文章名称:TJSONArray;beginResult:=TJSONArray.Create;Result.AddElement(TJSONString.Create(‘DelphiXE程序设计系列1-主从架构,多层到JSON和REST’));Result.AddElement(TJSONString.Create(‘从原生API到RESTAPI–使用C++BuilderXE开发REST应用程序’));Result.AddElement(TJSONString.Create(‘DelphiXE程序设计系列2-DataSna
9、p/REST服务器’));end; 『取得部落格文章名称』方法建立TJSONArray对象,并且把三篇文章名称以TJS
此文档下载收益归作者所有