SOAP 到 REST 的转换:新鲜还是重用?

SOAP to REST conversion : Fresh or reuse?

我的团队的任务是将我们应用程序的现有 SOAP API 转换为 REST。我的偏好是从头开始重写 API(仅重用每个操作执行的实际业务逻辑)。我团队中的其他人只想将 REST 作为现有 SOAP 的包装器。这意味着我们将公开 REST 服务,但是当请求进入我们的应用程序时,我们将在内部调用现有的 SOAP 操作。

您能否就以下哪一种是最佳方法提出建议?看起来我的方式更干净、更轻便、更快,但他们的方式允许一些代码重用。

为了重用当前代码,您必须将 REST 调用转换为 SOAP 调用这一事实绝对建议我重写!

为了使测试、调试和分析更容易,您应该有一个由 REST API 调用的纯基于 POJO 的 API。

您使用的是什么后端服务器?由于一些更流行的 Java 网络服务器具有使创建 REST API 变得非常容易的工具。

Could you please offer suggestions on which of these is the best approach? It looks like my way is cleaner and lighter and faster but their way allows some code re-use.

我编写了一个框架来执行 SOAP -> REST 转换。它在我曾经工作过的一家公司内部使用。该框架能够在不到 10 分钟的时间内使用映射文件完成此操作,但我们并未将其用于所有服务。这就是为什么...

  • 并非所有服务(基于 WSDL)在设计时都考虑到了 REST。其中一些只是在服务上调用的远程方法,仅此而已。
  • 该服务可能没有 resources 可以映射。
  • 即使有资源,它们也可能无法正确映射到 REST(GET / POST 等),并且某些调用不容易翻译。
  • 映射框架有它自己的开销。该框架的 SLA 非常低(个位数毫秒),但即使是很小的开销也可能不适合关键服务。不应低估分析和降低此开销所需的时间。

总而言之,该方法适用于某些服务,但需要一些工程工作才能实现。如果你说有 500 多个服务需要在短时间内快速转换,那么这样做是有意义的。

这取决于您的优先级和天气情况,您将收到太多要求改变 API 行为的请求。

  • 充足的时间和更多的变化预计:

If you have got time, of course writing from scratch is recommended as it would mean cleaner, lighter and faster. This will also make shipping new features easy.

  • 更少的时间和更少的预期变化。 API 太大而无法进行回归测试:

BUT if you have time constraints, I would suggest go with REST over SOAP api. Anyways you are going to expose only REST api to client, so you can do internal refactoring and phasing out of SOAP as and when time permits you. Changing whole code means regression testing of entire module