3

我正在为客户端开发一个 RESTful API。问题是,他使用的是一种相当晦涩的语言,叫做 Clarion。它是专有的和封闭的,文档不能在线免费获得。

每当我们讨论将数据从他的代码传递到我的代码并再次返回时,他都会开始谈论“ftp 文件上传”和直接服务器到服务器的 SQL。不用说,这些想法带回了过去糟糕日子的景象。我做了一些谷歌搜索,我找不到任何证据表明这种语言能够创建 HTTP Post 请求,更不用说使用 SSL 加密来保护它们免受窥探了。

我正在寻找足够具体的建议,以便我可以指导他完成他的讨价还价。我特别想避免尝试通过 FTP 将 XML 请求作为文件传递,或者将它们写入磁盘并调用一些脚本。不言而喻,但我也对在我的服务器上运行专有的 clarion 服务器代码或 DLL 不感兴趣。

Clarion 是否能够生成 POST 请求?在 Clarion 中很难生成 XML 吗?是否有更简单/更容易使用的格式,我的客户可能会更成功?没有任何数据比键/值对更复杂。

我正在用 python 编码,但如果有某种方法可以将数据传输到我的服务器,我可以反序列化任何合理的数据格式。

4

4 回答 4

6

我感觉到你的痛苦。系统之间的通信可能是一个主要的痛苦。不过好消息是 Clarion 可以处理 TCP/IP 和 XML(需要一点帮助),因此没有什么可以阻止您的 Clarion 同事。

为了全面披露,我应该指出我在这里有偏见——我将建议 Clarion 的人使用我创建的工具——然而有成千上万的 Clarion 程序员在使用它们,他们提供了答案你的问题,所以请原谅我。喜欢就忽略。

在 Clarion 中,有几个工具可以简化 TCP/IP 通信并支持 SSL 的使用。我制作的那个叫做 NetTalk ( http://www.capesoft.com/accessories/netsp.htm )。

Clarion 盒子内还有 XML 支持,虽然它不必要地麻烦,所以他至少可以使用 2 个 xml 产品 - iqXML(免费)和 xFiles(http://www.capesoft.com/accessories/xfilessp.htm ),其设计速度非常快。

一起使用 NetTalk 和 xFiles 创建 SOAP 服务器或客户端非常简单。(或者你喜欢的普通 HTTP 服务器和客户端。)有很多人这样做,所以绝对没有理由使用共享文件或 FTP 请求。我建议您轻轻地将您的 Clarion 朋友指向正确的方向。

如果您想通过其他 Clarion 开发人员运行这个问题,请尝试http://faq.clarionmag.com/(它使用 StackOverflow 引擎。)还有很多程序员在 NNTP 协议(​​新闻)上活跃于 news .softvelocity.com(comp.lang.clarion 等)。

干杯布鲁斯

于 2009-12-15T03:48:29.477 回答
0

我不会尝试用这种晦涩难懂的语言完成更多工作,而是采用您暗示的方法:使用文件系统作为切换机制。

让他的代码输出文件到给定的文件夹;然后,有一个用“普通”语言编写的守护程序,定期监视该文件夹(cron作业等)。当出现新文件时,通过 HTTPS / 其他“正常”方式将其上传到您的其他服务器以执行任务。

这种方法遵循“本地化垃圾”理念——如果你不能摆脱垃圾,至少要确保它的“边界”是明确定义的。

于 2009-12-02T07:51:02.233 回答
0

信息希望是免费的。该语言可能是专有的和封闭的,但文档在线发布的:

http://www.softvelocity.com/clarion/pdf/LanguageReferenceManual.pdf

看起来像 Windows 3.1 老式报告生成语言,它能够与 DDE/OLE (!) 对话,但除此之外似乎没有任何外部通信功能。

所以不,Clarion 不能执行 POST 请求(通过第三方自定义控件/DDE 对话除外)。使用文件系统可能是一种安全的方式:它将客户端保持在熟悉的区域,并且最容易调试。但是,如果需要双向通信,您可能需要清除手册上的灰尘并采用 DDE 路线。这实际上取决于确切的要求(例如程序是批处理还是交互式?),但是 1158 页手册中的第 935 页(附录 A)是从哪里开始查找的!

于 2009-12-05T03:36:38.150 回答
0

我很晚才看到这篇文章,因为我今天只设置了 Stack Overflow 帐户。但是,我想评论布鲁斯的回答。

Bruce 经营着一家第三方 Clarion add on maker 公司,并且总是会建议使用他们的产品。尽管它们真的很好,工作也很好,但我不禁指出,对于任何需要完成的事情,都有标准的、开放的工具。

例如,程序员可以使用“curl” http://curl.haxx.se/从程序与 Web 服务器进行通信。不仅是 Clarion 程序,而且是任何程序。除此之外,Clarion 确实可以访问所有 Windows API,而这只是编写代码的问题,因此,套接字、http、mci 以及任何程序员都可以使用的任何东西。

需要从一个显然无法访问 smtp 功能的程序发送电子邮件?使用“布拉特”!- 布拉特网

想从网站下载一些文件?wget - gnu.org/software/wget

这些都是命令行界面。我建议那些不知道“界面”是什么意思的人去看看免费词典 - tfd.com/interface

问候

于 2011-01-28T16:17:17.143 回答