响应消息:复合消息或可选字段

时间:2011-10-07 20:15:15

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

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

响应

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

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

复合讯息

我们将返回两种回复,具体取决于交易是否获得批准或是否有错误:

首先:

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

第二

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

可选字段

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

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

哪个选项更合适?

1 个答案:

答案 0 :(得分:1)

这是一种可辩解的,更多的是个人观点而不是最佳实践。

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