2010-11-14 162 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對於像通用任務:

  • 記錄/審計跟蹤
  • 監測(性能統計)
  • 權限管理
  • 基本管理(關機/進入維護模式)
  • 消息(向用戶發送通知或應用程序)
相關問題