使用IIS在Delphi 2009中创建REST Web服务

The*_*oon 9 delphi iis rest web-services

是否可以在IIS上运行的Delphi 2009中创建REST Web服务?我查看了Web代理和Web快照Web服务器应用程序,但到目前为止还无法弄明白.如果有可能我怎么去开始工作?

Dar*_*ler 11

在Delphi中,REST Web服务非常简单......实际上太简单了,因为有时它会隐藏在复杂的WebSnap演示中并隐藏起来.您可以使用Web代理,WebSnap,Indy,Synapse或其他通用HTTP服务器组件.我不会在你的第一次RESTful郊游中使用WebSnap.我坚持使用WebBroker,或者更容易使用Indy.

文件 - >新建 - >其他WebBroker-> Web服务器应用程序

您可以选择ISAPI DLL或Web App Debugger ...对于您的第一个,我推荐使用WAD应用程序.(实际上,任何Web应用程序都应该从服务器的WAD开始,然后创建一个客户端测试器应用程序,以便以后更容易调试.)如果选择WAD,则为其命名 - 如MyFirstREST.这将创建一个具有默认Web模块的项目,该模块使用简单的HTML doc响应任何请求.

右键单击Web模块,单击"操作编辑器"弹出菜单项,然后通过自定义PathInfo设置创建RESTful命令.然后,您只需定义事件以响应这些命令.

对于Indy,只需启动一个新的Windows服务应用程序并在服务数据模块上删除TidHTTPServer组件.然后为简单的HTTP GET请求定义OnCommandGET(http:// yourserver/customer?id = 1)还为POST请求定义OnCommandOther.

有一个TIdHTTPResponseInfo和一个TIdHTTPResponseInfo发送到事件中...只需查看QueryParams以获取GET以提取传入的参数并填充响应的ContentStream(或ContentText)以及ContentType.

有关REST实现的许多教程都可以在网上找到 - 一个来自IBM:http://www.ibm.com/developerworks/webservices/library/ws-restful/

通常,您使用RESTful服务器来处理XML请求和响应,但对实现服务器的方式没有限制.这一切都取决于客户的期望.如果您也在控制客户端,那么您甚至可以通过序列化TObject后代来回传递对象.