2012-05-27 40 views
2

我有一個C++ API(後端),我想將它用作Web服務。我正在考慮使用REST作爲前端和後端之間的接口。我發現了一堆用於REST的C++庫,但我最終想要的是讓C++ API清除/獨立於REST,並在前端處理所有這些,從而保持C++ API的通用性和可重用性。有關如何解決它的任何建議?另外,我的API不專注於數據集合,而是處理將作爲API中包含的函數的輸入提供的數據。所以基本上,C++函數從Web接收輸入數據,處理它並返回輸出數據。我只需要能夠使API調用作爲參數傳遞輸入數據並獲取輸出數據。從基於REST的Web服務調用C++函數

+0

對不起,我忘了提及這一點:我想保持我的API實現依賴,即我希望它是可用/可從任何語言調用。這就是我想要有一個REST接口的原因。基本上,用戶應該能夠使用任何他們方便的語言來調用API中定義的函數。 –

回答

0

所以我從標籤猜測你想要一個調用C++函數的PHP服務器?

如果是這樣,您可以使用PHP extensions直接從PHP代碼調用C++例程。或者,使用SWIG爲C++代碼創建一個包裝器,或者將C++例程放入可執行文件中,並使用system()傳遞參數作爲標準輸入來調用它。

0

我這樣做的方式是使用PHP前端通過套接字與C++後端對話。

您需要C++和PHP端的包裝圖層來序列化/反序列化您的調用。爲此,有許多解決方案:您可以使用XML,JSON,AMF,協議緩衝區,節儉等。

這可以很好地縮放,因爲您可以有多個PHP前端調用您的C++後端 - 但只是真的需要如果你的後端是有狀態的。

如果後端不是有狀態的,那麼最好使用system樣式調用。