首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >架构:我应该用架构来验证传入的回复消息吗?

架构:我应该用架构来验证传入的回复消息吗?
EN

Software Engineering用户
提问于 2015-06-03 15:23:02
回答 3查看 322关注 0票数 2

我使用的web服务使用XSD来描述其API。最近,他们在没有xsd:any的回复消息中添加了一个字段,所以当我们的模式验证器试图验证前一个xsd时,它失败了。我们认为这是向后不相容的,于是我们开了一张票。

他们的架构师回答说,我们应该验证我们发出的消息(请求),但不要费心去验证回复。我们应该在回复中选择我们想要的字段,而忽略其余的字段。他还说,我们应该将模式验证器设置为忽略“新”字段,并验证其余字段。

如果某些模式验证器存在这样的设置,那么这个架构师可能没有错,但另一方面,如果我的应用程序中断是因为我不需要关心更改(或创建)字段,这不意味着违反了界面偏析原理吗?我是否真的可以零敲碎打地验证对象的各个字段,而不是期望它是完全正确的呢?

我意识到,不验证来自外部服务的传入数据也具有安全含义,但在这个问题中,我试图更多地了解体系结构原则,而不是安全方面。

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2015-06-03 16:19:32

他们的架构师回答说我们应该验证我们发出的消息(请求).

他们不是在实践他们所宣扬的。如果是的话,您将收到对XSD有效的消息。

问题肯定站在他们这一边,他们应该解决这个问题,但在现实世界中,我们经常要解决别人创造的问题,所以你可能需要“不用费心去验证答案”,只是为了保持现状。

在一般的Internet协议中,我们尝试在容忍不符合标准的输入的同时产生符合标准的输出。我正试图找到关于HTML或HTTP (或其他什么)的RFC,这些都是这样的,但此时运气并不好。但问题是,在你这一边保持宽容有助于让事情保持平稳,尽管它感觉很脏。

票数 4
EN

Software Engineering用户

发布于 2015-06-03 18:51:25

如果您使用答复作为输入到您的系统,那么您肯定应该验证它们。如果您只是检查成功或失败,并可能记录一些返回的If,那么您可能不需要验证,但我同意您应该让web服务人员修复他们的问题。如果它们进行了不向后兼容的更改,则应该有适当的程序将您切换到新版本的服务。希望这将使他们对未来的模式设计更加小心!

票数 1
EN

Software Engineering用户

发布于 2015-06-07 13:57:19

我猜,如果有一个XSD模式,您应该能够根据它验证一切。这就是itS存在的目的;)

所以,我想他们只是需要发布一个新版本的模式,让您更新您的软件。

至于在回复中添加一个新字段.如果没有模式,我认为这不应该被视为BC中断。当您设计API使用者时,您应该尽可能地敏捷。移除某个字段或更改其格式对您来说应该是BC中断。但是增加一个新的不应该。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/285727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档