2010-11-14 156 views
4

我们有一个使用RemObjects DataAbstract编写的三层Delphi应用程序。我们的许多客户都在要求提供API,以便他们可以使用自己的应用程序与其进行交互。你的Delphi应用程序提供哪些类型的API?

API必须允许客户端使用各种参数调用方法,并返回范围从简单参数到整个数据集的结果。

您可以推荐哪些类型的API,以及它们有多难实施?

+2

很难给出一个问题的答案,除了“它取决于”之外,这个问题一般化了。首先,客户对“API”意味着什么? – 2010-11-14 18:07:47

+1

coomunity wiki? – 2010-11-14 18:14:12

+0

@梅森 - 我已经澄清了这个问题。客户需要一种访问我们中间层功能的方法。我们需要一种方法让他们将请求传递给我们的服务器并返回结果。 – norgepaul 2010-11-14 19:08:10

回答

5

由于您已经使用RemObjects DataAbstract编写了您的应用程序,因此您已经在应用程序中准备好了您需要的所有东西。

RemObjects DataAbstract包含RemObjects SDK,它是建立可用API的最灵活和最简单的方法之一。 RemObjects SDK允许您以多种方式将方法方法从本地二进制RemObjects调用,XML-RPC,JSON,SOAP,本地DLL,Windows消息,到命名管道......展示给您的客户SMTP/POP。

美的是你可以设计一个API,然后很容易地将它暴露给你的客户via any or all of these different mechanisms。只需设计您的API方法,然后询问您的客户想要如何使用它,RemObjects有一个符合其请求的消息/渠道组合。

+0

在使用SuperTcpChannel这么长时间后,我忘记了还有其他的选择:) – norgepaul 2010-11-15 17:40:43

2
  1. 将API发布为DLL中的函数。编码简单,但受到DLL限制(仅限普通函数等)的限制。不容易从脚本调用,例如
  2. 将API作为COM对象发布。实现起来要复杂一点(特别是如果你以前从未使用过COM),但是非常灵活。如果需要,可以从脚本轻松调用。
  3. 使用像SOAP或REST这样的标准通用RPC机制。更适合服务器,不难实现,需要一个“监听”活动才能接收呼叫
  4. 使用您自己的协议进行通信。实现时间更长,可以比SOAP或REST更快,但在客户端也需要更多的工作。
+3

如果您使用SOAP,客户只需导入WSDL就可以轻松完成90%的工作。通过一点点努力,您就可以为WSDL生成注释,并为其提供帮助文件,该文件(一旦设置完成)就可以让文档保持最新状态,非常简单。 IME确保其全部工作的关键之一是自己使用API​​。这样,它就更有可能成为可用,完成和工作。如今我不是原始DLL或COM的粉丝,SOAP和REST更加可用。 – 2010-11-14 22:21:08

1

除了普通的业务逻辑API,我认为这将是又一个很大的优势,如果应用程序提供的API对于像通用任务:

  • 记录/审计跟踪
  • 监测(性能统计)
  • 权限管理
  • 基本管理(关机/进入维护模式)
  • 消息(向用户发送通知或应用程序)
相关问题