从基于REST的Web服务调用C ++函数

时间:2012-05-27 22:52:59

标签: php c++ web-services api rest

我有一个C ++ API(后端),我想将它用作Web服务。我正在考虑使用REST作为前端和后端之间的接口。我发现了一堆用于REST的C ++库,但我最终想要的是保持C ++ API清晰/独立于REST的东西,并在前端处理所有这些,从而保持C ++ API的通用性和可重用性。有关如何去做的任何建议?

此外,我的API并不专注于数据集合,而是处理将作为API中包含的函数的输入提供的数据。基本上,C ++函数从Web接收输入数据,处理它并返回输出数据。我只需要能够进行API调用将输入数据作为参数传递并获取输出数据。

3 个答案:

答案 0 :(得分:0)

所以我猜测你想要一个调用C ++函数的PHP服务器吗?

如果是这样,您可以使用PHP extensions直接从PHP代码调用c ++例程。或者,使用SWIG为C ++代码创建一个包装器,或者将C ++例程放在可执行文件中,并使用system()将参数作为标准输入进行调用。

答案 1 :(得分:0)

我这样做的方式是使用PHP前端通过套接字与C ++后端通信。

您需要在C ++和PHP端使用包装层来序列化/反序列化您的调用。为此,有许多解决方案:您可以使用XML,JSON,AMF,协议缓冲区,节俭等。

这可以很好地扩展,因为你可以有多个PHP前端调用你的C ++后端 - 但只有你的后端是有状态的才真正需要。

如果后端没有状态,那么最好只使用system样式调用。

答案 2 :(得分:0)

我认为您可以为您的 API 创建一个包装器,将您的 api 函数转换为 REST 端点,并使用 DTO 将 REST 层与您的 api 分离,为此您可以使用 otapp,这是一个非常完整的 C++ REST 框架.