c++ - 为我的 c/c++ 库痛饮、soap 或 restful

标签 c++ web-services rest soap swig

我有一个完全用 C/C++ 构建的库/API 超过 10 年(在 Linux 下)。现在我想将 API 导出为 Web 服务供其他 Web 项目使用。我搜索网络并缩小到以下 3 个选择:

  1. 使用 SWIG 将 API 导出为 PHP 或其他脚本/网络基础语言
  2. 使用 gSOAP 将 API 导出为 SOAP 协议(protocol)
  3. 将 API 导出为 RESTful 服务(我找不到任何现有的框架,有什么建议吗?)

我想比较一下

  • 稳定性
  • 易于使用
  • 表现

SWIG 似乎很容易使用,我不确定它的稳定性。 gSOAP 看起来非常稳定,但使用和设置有点困难。

有什么建议吗?

最佳答案

我个人用过WSO2-WSF-CPP这是 AXIS2/2 之上的 C++ 层,用于将遗留 C++ 代码导出为 Web 服务。

我当时尝试了 gSOAP,它工作得很好,但出于稳定性和部署的原因,我选择了 WSO2,因为 AXIS2/C 可以轻松部署为众所周知的 Apache2 HTTP 服务器的一个模块。

为了易用性的要求我不知道你是否打算以WSDL文件为模板来生成源代码框架,但是你可以忘记WSO2包的这个特性.. . 它似乎已经被弃用了很长时间,生成的代码太难看,无法手工维护。

不过,根据您拥有的服务的复杂性和数量,自己做一个代码生成器可能是个好主意。我推荐它!我这样做了,现在创建/构建/生成服务非常简单。

关于 WSO2 网络服务的另一件值得注意的事情是,它的构建很简单,开箱即用,并且带有独立的服务器来开发和测试。它非常有用(即使我非常确定任何体面的 Web 服务平台都提供像 gSOAP 那样的这类东西)。

关于c++ - 为我的 c/c++ 库痛饮、soap 或 restful,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6382092/

相关文章:

c++ - 在 C++ 中延长临时值的生命周期

java - Informatica Web Services Hub v9 是否支持 MTOM?

.net - 确定 .NET CF 中 Web 服务调用的传输数据大小

android - 从 Android 中的 SOAP 网络服务获取响应

java - 如何使用 Gradle 项目及其依赖项?

mysql - 如何使用 HTTP POST 为 SQL 数据库设置正确的主键?

c++ - SQLite 查询返回 "unknown error"

c++ - 如何使包装类将其构造函数参数转发给 std::vector 的构造函数?

c++ - XercesC 将输出设置为 UTF-8

javascript - 解析兼容性和安全性