如何使用Delphi作为大型Web应用程序的后端来创建REST Web服务器?

问题描述 投票:14回答:4

我读了this question,但不知何故不满意答案。

我也很快阅读(正如那个问题中的建议)MarcoCantù2010手册的最后一章,我从中引用以下内容(我想我可以引用这么简短的文字):

我[MarcoCantù]在Delphi编写的服务器端Web和REST应用程序方面投入了大量资金,近年来我开始在会议上使用Delphi Web应用程序REST Framework119(即DWARF),目前还没有公开发表......仅仅因为它太粗略而未完成发表。我已经看到其他正在努力克隆Delphi中的Rails并提供其他REST服务器架构。我认为,如果您想构建一个非常大的REST应用程序架构,您应该推出自己的技术或使用这些原型架构之一。

考虑到我拥有Delphi XE Professional和DataSnap不在那里,我想根据上面的评论考虑编写大型应用程序,似乎DataSnap不是一个选项。

甚至有商业解决方案吗?我不想考虑“我自己的REST实现”,我想创建一个使用我的数据模块的网络服务器,我使用我选择的DAC(在本例中为Devart)。

最后说明:我的目标是为大型Web应用程序编写后端,在客户端我想使用Ext JS 4.0,但我想用javascript完成所有客户端工作,充分利用EXT JS,所以基本上我需要一个仅用于数据和跟踪状态的网络服务器,而不是用于提供网页。

delphi rest delphi-xe
4个回答
13
投票

要创建REST服务,请尝试我们的开源mORMot project。现在,这是一个众所周知的稳定项目,在全球范围内广泛应用。

你可以通过实现一个自定义的TSQLRestServerStatic类(类似于TSQLRestServerStaticInMemory类,但调用你的DAC)来使用任何具有框架当前状态的DAC:所以你将受益于ORM和JSON RESTful架构,以及加速http.sys内核模式服务器。

SQLite3引擎对于我们的框架不是强制性的,即使它被设计为更好地使用它。


10
投票

如果您将从头开始申请,我认为如果Delphi是您唯一的选择,mORMot是一个不错的选择。如果选择datasnap,您将不得不忍受性能和稳定性问题。

我在博客上写了一篇文章,讨论在大型应用程序中使用DataSnap(和mORMot)的性能和稳定性,您可以在以下链接中看到它:

DataSnap analysis based on Speed & Stability tests


2
投票

我想你应该看看kbmMW,有一种方法可以实现基于事件驱动的HTTP服务器的基本REST服务器。

检查news.components4developers.com新闻组,那里你会有很多文档。


1
投票

FireHttp是一个基于Delphi / Object Pascal语言的高性能Web服务器。它支持HTTP 1.1,HTTPS(SSL / TLS),WebSocket,GZip,Deflate,IOCP,EPOLL。它采用多进程+多线程模型,具有良好的稳定性和并发性,并提供SDK源代码。开发人员可以使用SDK快速构建高性能的跨平台Web应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.