2009-11-25 72 views
3

我正在爲客戶端開發RESTful API。問題是,他正在使用一種叫做Clarion的晦澀語言。它是專有和封閉的,文檔不能在線免費獲取。在Clarion中發佈到網頁

每當我們討論從他的代碼中傳遞數據到我的代碼,然後再回來,他開始談論「ftp文件上傳」並指導服務器到服務器的SQL。毋庸置疑,這些想法帶回了昔日糟糕的景象。我做了一些Google搜索,我找不到任何證據表明這種語言能夠創建HTTP Post請求,更不用說使用SSL加密來保護他們免受窺探。

我正在尋找足夠具體的建議,以便我可以引導他完成他的討價還價。我特別想避免嘗試通過FTP將XML請求作爲文件傳遞,或者將它們寫入磁盤並調用某些腳本。它應該不用說,但我也沒有興趣在我的服務器上運行專有的clarion服務器代碼或DLL。

Clarion是否能夠生成POST請求?在Clarion中很難生成XML嗎?有更簡單/更易於使用的格式,我的客戶可能會有更多的成功?沒有任何數據比鍵/值對更復雜。

我使用python進行編碼,但是我可以反序列化任何合理的數據格式,如果有某種方法可以將數據傳到我的服務器。

回答

5

我感到你的痛苦。系統之間的溝通可能是一大痛苦。好消息是,Clarion可以做TCP/IP和XML(有一點幫助),所以沒有什麼東西可以讓你的歌樂同事回來。

爲了充分披露,我應該指出我在這裏有偏見 - 我即將推薦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'ing請求。我建議你輕輕點你的號角朋友在正確的方向。

如果您希望通過其他Clarion開發人員運行此問題,請嘗試http://faq.clarionmag.com/(使用StackOverflow引擎)。news.softvelocity.com上的NNTP協議(新聞)上也有很多活動的程序員( comp.lang.clarion等)。

乾杯 布魯斯

+0

謝謝布魯斯!這正是我需要的答案,但(不幸的是)不能再接受。我想upvote將不得不做。我一定會通過這個信息,並欣賞指向更活躍的歌樂社區的指針。 – 2009-12-16 06:25:56

0

而不是試圖在這種晦澀的語言中完成更多,我會採用您暗示的方法:使用文件系統作爲切換機制。

讓他的代碼輸出文件到一個給定的文件夾;然後,有一個守護進程,用「正常」語言編寫,定期監視該文件夾(cron作業等)。當一個新文件出現時,通過HTTPS /其他「正常」方式將其上傳到您的其他服務器來執行此任務。

這種方法遵循「本土化廢話」的哲學 - 如果你不能擺脫廢話,至少要確保它的「邊界」是明確的。

+0

這真的不是一個不錯的選擇。我無法控制安裝過程,並且使其比以前複雜,不是一種選擇。 – 2009-12-04 22:22:10

0

信息希望免費。該語言可能是專有的,封閉的,但文檔在線發表時間:

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

看起來其中有談DDE/OLE的能力的Windows 3.1的老式生成報告的語言,但似乎(!)除此之外沒有外部通信功能。

所以不,Clarion不能做POST請求(除了通過第三方自定義控制/ DDE對話)。使用文件系統可能是一種安全的方式:它使客戶端保持在熟悉的領域,並且最容易進行調試。但是,如果需要雙向通信,則可能需要將手冊上的灰塵吹走並轉至DDE路線。它確實取決於確切的要求(例如,程序批處理或交互?),但1158頁手冊中的第935頁(附錄A)是開始尋找的地方!

+0

信息可能要免費,但該手冊適用於版本6,而不是7,現在大約6年。我認爲第7版有更多功能,但我沒有它的文檔。 – 2009-12-06 19:26:50

+1

這裏有一個小問題,只是爲了糾正一些可能的誤解。 Clarion是一種面向商業的語言,它具有強大的WRT讀寫數據功能,不僅僅是一種生成語言的報告。該語言的起源於1984年推出的DOS版本,大約在1994年推出Windows版本。 因爲它是一種本地編譯語言,所以它可以訪問整個Windows Win32 API,並且不僅限於您閱讀的文檔中的函數。因此,原生Clarion可以通過使用Winsock API或者WinINet DLL來完成POSTS。 – Bruce 2009-12-16 07:07:05

0

我進來的時候很晚到這個職位,因爲我只有堆棧溢出今日帳戶設置。不過,我想評論布魯斯的回答。

布魯斯經營一家第三方Clarion add製造商公司,並將始終建議使用他們的產品。儘管他們的工作非常出色,但我還是忍不住指着有標準,開放的工具來處理任何需要做的事情。

例如,程序員可以使用「curl」http://curl.haxx.se/從程序與Web服務器進行通信。不僅是歌樂節目,而且是任何節目。除此之外,Clarion確實可以訪問所有Windows API,而且它只是編寫代碼的問題,所以,socket,http,mci以及任何程序員都可以訪問的內容。

需要從程序中發送電子郵件,顯然無法訪問smtp功能?使用「Blat」! - blat.net

想要從網站下載一些文件? wget - gnu.org/software/wget

這些都是命令行界面。我建議誰不知道什麼是「接口」的意思的人,去獲得看看詞典 - tfd.com/interface

問候

+0

感謝您的回答,但正如我在問題中指出的,我正在尋找NATIVE解決方案。任何讓部署更復雜的東西都會出來(捲曲,額外的命令行工具等)。另外,我不確定爲什麼你暗示我不知道接口這個詞是什麼意思。 – 2011-01-29 01:16:44