【问题标题】:SOA with SOAP and REST implementationSOA 与 SOAP 和 REST 实现
【发布时间】:2016-02-12 16:16:05
【问题描述】:

我正在为 SOA 的概念而苦苦挣扎。假设有一个包含大量特定业务逻辑和资源的大项目。根据我发现 SOAP 和 REST 的意义,SOAP 用于业务逻辑部分,REST 用于资源/CRUD 部分。

我的想法是使用 SOAP 作为公共入口点并使用 REST 作为 SOAP 的内部 API(因为它不应该有业务逻辑),这样我可以利用这两种结构的优势.

这里的问题是编写详细/概述请求可能会在 REST 和 SOAP 服务中,这不利于维护。

应该避免混合使用 SOAP 和 REST,还是可以按照我描述的方式正确使用它们?

编辑我会尝试做一个更具体的案例。我还看到了一篇好文章http://www.infoq.com/articles/tilkov-rest-doubts。通过以不同的方式重命名模型,这将解决在 REST 中使用业务逻辑的许多问题。

例如,如果您有一个产品订单并且您有折扣,则可以在(创建)POSTing 产品到 /order URL 之后计算。在 /order URL 上GETing 产品后可以看到折扣。这非常适合 REST。

但是,当由于某种原因您不能以相同的顺序拥有产品 xy 时,这在 REST 服务中似乎有点难以做到。因为您必须给出正确的错误消息,例如“xy 不能在一个顺序中”,所以这暴露了业务逻辑并且似乎更适合 SOAP。有没有办法做到这一点是 REST,如果是这样,在这种情况下使用 REST 会更好吗?

【问题讨论】:

    标签: soap soa restful-architecture


    【解决方案1】:

    一个宽泛的问题,也许过于宽泛。当然,这取决于您要构建的内容。如果您提供更多详细信息,平台,定位什么样的设备等,您将得到更好的答案。

    但是,请考虑为公共 + 内部的所有内容构建 RESTful api。我建议查看 ServiceStack https://github.com/ServiceStack/ServiceStack/wiki/Why-Servicestack 文档,其中讨论了 api 的方法。即使您不使用他们的工具集,这些概念也将帮助您构建自己的 Web api。

    【讨论】:

    • 感谢您的回答。我用一些额外的数据更新了我的问题。平台有很多逻辑,如果你有 x 你不能做 y 而应该做 z。
    • 好的,我已经为使用车辆配置器的客户做了类似的事情,他们可以在其中向车辆添加选项。当然,有些选项依赖于其他选项,x 必须有 y,有些是互斥的 x 一定不能与 y,等等。我有一些服务器业务层强制执行规则,在我的 api 中,我返回车辆及其最近的有效选项列表,然后是“损坏的规则”列表,详细说明了我无法添加的选项及其原因。 WCF 或 REST,它不是阻止您的技术 - 您可以在消息中返回您需要的任何内容。
    猜你喜欢
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    相关资源
    最近更新 更多