【问题标题】:Response message: Composite message or optional fields响应消息:复合消息或可选字段
【发布时间】:2011-10-10 06:27:29
【问题描述】:

我们正在使用一组 Web 服务,并且正在寻找将错误返回给 Web 服务使用者的最佳选择。这是当前的响应:

响应

  • 关于服务器的一些数据
  • 关于用户的一些数据
  • 执行交易的一些结果数据

所以,我们也需要返回错误。这些是我们的选择:

复合消息

根据交易是否被批准或有错误,我们将返回两种响应:

第一:

  • 类型标识符(此消息是序列化的。所以我需要知道我正在处理哪种类型的消息,以反序列化最后一部分)
  • 关于服务器的一些数据
  • 关于用户的一些数据
  • 执行交易的一些结果数据

第二:

  • 类型标识符(此消息是序列化的。所以我需要知道我正在处理哪种类型的消息,以反序列化最后一部分)
  • 关于服务器的一些数据
  • 关于用户的一些数据
  • 错误

可选字段

交易数据和错误字段是可选的。如果没有错误,我会知道它已被批准。

  • 关于服务器的一些数据
  • 关于用户的一些数据
  • 执行交易的一些结果数据
  • 错误

哪个选项更合适?

【问题讨论】:

    标签: web-services architecture service message n-tier-architecture


    【解决方案1】:

    这是有争议的,更多的是个人意见,而不是最佳实践。

    我个人喜欢使用可选字段,因为错误代码可能是操作的结果。我希望客户端在解析结果之前总是首先检查返回结果的(可选)错误属性。这还允许同时返回 非致命 错误和部分结果。独家使它如此......独家。 Optional 更灵活。

    【讨论】:

    • 谢谢你,Kroonwijk,部分结果案例是支持可选字段的一个非常好的观点。我没有意识到。 +1
    猜你喜欢
    • 2021-07-30
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    相关资源
    最近更新 更多