web-services - 响应消息 : Composite message or optional fields

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

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

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

  • 所以,我们也需要返回错误。这些是我们的选择:
    复合消息
    根据交易是否被批准或有错误,我们将返回两种响应:
    第一的:
  • 类型标识符(此消息已序列化。所以我需要知道我正在处理哪种消息,以反序列化最后一部分)
  • 关于服务器的一些数据
  • 关于用户的一些数据
  • 执行事务的一些结果数据

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

  • 可选字段
    交易数据和错误字段将是可选的。如果没有错误,我会知道它已被批准。
  • 关于服务器的一些数据
  • 关于用户的一些数据
  • 执行事务的一些结果数据
  • 错误

  • 哪个选项更合适?

    最佳答案

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

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

    关于web-services - 响应消息 : Composite message or optional fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7692443/

    相关文章:

    ubuntu - 无法将 Elasticsearch 作为服务启动

    java - Rest Api 中的两个类可以有相同的路径吗?

    java - CXF - 方法参数为空

    javascript - 从 javascript 客户端验证 REST 服务

    javascript - 用于监听我自己的网络服务的推送通知的 Cordova 插件

    architecture - zf2 + 学说体系结构。如何使用对象管理器?

    c# - 服务导致SCM错误 "reported an invalid current state 0"

    angular - 类型 'Observable<Student[]>' 缺少类型 'Student' : id, 名字、姓氏、英语和其他 4 个属性的以下属性

    azure - Azure Service Fabric 中的应用程序设计

    java - 使用哪种设计模式(我需要类似中介模式的东西)?