7

我在 Delphi 7 的应用程序中嵌入了一个(非常简单的)自制 REST 服务器(带有 ICS + 一些 stuf),它可以工作,但不容易维护和扩展。现在我使用Delphi XE2 Pro(没有DataSnap),我会改变一个更标准的解决方案,但又简单。

这样做很容易吗?

4

2 回答 2

6

Habari Web Components框架是用于 Delphi 2009 和更新版本的简单(商业)HTTP 服务器框架。使用TdjRestfulComponent它还包括一个 REST 扩展。(我是这些库的开发者)

TdjRestfulComponent配置可以以类似属性/注释的样式或更传统的程序样式方式完成。

所有 HTTP 方法和内容类型都可以映射到不同的匿名方法,并且仍然共享相同的资源 URI(一个 URI,不同的资源表示 - 取决于请求的内容类型)。例如,要/myresource以 HTML、XML 或 JSON 表示资源,可以这样配置:

// respond to HTML browser GET request
&Path('myresource');
&Produces('text/html');
GET(procedure(Request: TRequest; Response: TResponse)
 begin
   Response.ContentText := '<html>Hello world!</html>';
 end);

// respond to XML client
&Path('myresource');
&Produces('application/xml');
GET(procedure(Request: TRequest; Response: TResponse)
  begin
    Response.ContentText := '<xml>Hello world!</xml>';
  end);

// respond to JSON client
&Path('myresource');
&Produces('application/json');
GET(procedure(Request: TRequest; Response: TResponse)
  begin
    Response.ContentText := '{"msg":"Hello world!"}';
  end);

该组件还支持路径参数:

&Path('orders/{orderId}/lines/{lineNo');

将解析一个 URL,如

http://mydomain.local:8080/context/orders/65432/lines/1

into additional query parameters (orderId=65431 and lineNo=1)

于 2012-05-10T17:13:04.087 回答
2

我不知道它是否像要求的那么简单,但是您可以看看我们的mORMot 框架

这是一个完整的 RESTful 服务器,具有客户端-服务器 ORM 和基于接口的服务(如 WCF)。它轻巧快速,但也有很多功能。

你可以做任何你想做的应用程序。例如,一些用户不使用它的 ORM,也不使用它的 SOA,而只是将它用作一个非常快速的 RESTful 服务器。

它适用于任何版本的 Delphi,从 Delphi 6 到 XE2,并且不需要特定的许可证:它也适用于 Starter 版本。甚至包括数据库连接。

它本身并不是一个“标准”,但它使用众所周知的标准,如 REST、HTTP、JSON。它具有 per-URI 内置身份验证,以及完整的 per-interface/per-method 安全策略。超过 800 页的文档,包括一整套回归测试。为了快速开始,请查看示例- 我怀疑您可能会发现它很容易。

它像啤酒一样免费,像鸟一样免费。

于 2012-05-10T15:03:57.283 回答