我正在起草一个Web服务的设计,该设计将与另一个Web服务进行通信以进行“搜索”。在我的响应DTO中,我有一个复杂类型的数组(包含在另一个compex类型中),表示结果。 B可以返回此数组中的零个,一个或多个项目。我的意图是,如果搜索没有结果,那么数组就会是空的。我的同事坚持认为Web服务B应该总是返回数组中的一个项目,并且 - 如果搜索没有结果 - 第一个对象将具有一个sentinel属性值,表明没有找到结果。这个想法是B需要明确告诉A没有搜索结果,而不是从数组的状态不言自明。他们设想B有意发送一组对象,并以某种方式设法仅在其对A的响应中发送一些或零项,并且A可以明确地理解是否存在错误或具有此哨兵值的错误。
我的直觉告诉我,B不应该“明确地”告诉A没有结果,由于我们的技术堆栈(WCF,SOAP,httpBasicBinding),这种努力是多余的和不必要的。我尝试使用谷歌搜索,但找不到任何具体的文档,说明这个技术堆栈如何处理Web服务之间的技术故障。