【问题标题】:How can I use the Bloomberg API with Delphi?如何在 Delphi 中使用 Bloomberg API?
【发布时间】:2014-09-09 13:49:50
【问题描述】:

我想连接到 Bloomberg - 将股票报价数据流连接到我们用 Delphi 编写的交易系统。

Bloomberg 网站 (http://www.bloomberglabs.com/api/libraries/) 上提供的可供下载的 API 库不包含 Delphi 特定的版本。

如果只有 C/C++、Java、.Net、Perl 和 Python 库可用,是否可以从 Delphi 访问 Bloomberg API?

【问题讨论】:

    标签: delphi bloomberg blpapi


    【解决方案1】:

    您可以毫无问题地使用 C/C++ SDK 并使用 external 关键字将函数调用映射到 Delphi 中。请查看this example 了解更多信息。

    但是,正如 cmets 中有人所说,因为您所谈论的 API 只是嵌入对 Web 服务的调用,您可以只从 Delphi 调用 Web 服务,或者根据 Web 服务规范在 Delphi 上定义自己的 API。您可以看看 C/C++ 的源代码,然后尝试将其转换为 Delphi。

    如果您无法直接调用 Web 服务或将 API 转换为 Delphi,则可以使用 C/C++ API 作为外部函数调用。

    【讨论】:

    • 我对Bloomberg API一无所知,但快速浏览一下,它似乎包含一个Web Service,Delphi应用程序原则上应该能够直接使用它?
    • 是的,当然。我没有看过库本身,但由于它有一个 C/C++ SDK,建议使用它...
    • You can just have a look at the source of the C/C++ - 来源可用吗?我只能看到二进制文件,或者在 Python/Perl 的情况下需要导入动态库 (DLL)。
    • @MartynA 我不认为它调用了网络服务并且代码肯定不可用。
    • Bloomberg API 绝对不是 Web API,我们分发的库不“包装”Web API。这确实限制了某些平台上的使用,但正如@aleroot 所说,在这些平台内使用 C/C++ 库通常很简单,因为支持外部 C 库是一个非常常见的功能。
    【解决方案2】:

    通常,如果我在 Delphi 集成不方便的情况下需要使用 Web 服务,我建议使用其中一个可用的 SDK 编写一个精简的“代理”。

    然后可以使用简单的文件传输或网络协议(例如 HTTP)来实现代理和 Delphi 端之间的通信。

    在这种情况下,它可能是:

    (Bloomberg) <== Java SDK ==> (Java proxy) <== HTTP ==> (Delphi application)
    

    关键优势是可以非常快速地实现第一个原型,因为所有必需的部分都已经存在:

    • 下载 SDK 并创建 Java Web 服务(服务器)项目
    • 创建使用 Indy 发送 HTTP 请求的小型 Delphi 原型
    • 在 Java Web 服务中,将请求参数映射到 BB API 调用
    • 将 BB API 调用响应映射到 Java Web 服务响应
    • 在 Delphi 应用程序中读取响应

    【讨论】:

      猜你喜欢
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多