我在用着:
- .NET Core 3.0 (C#)
- 用于序列化的 SOAPCore
- SQL 服务器
我有一个来自遗留系统的预构建 SOAP 服务,该服务提供由两 (2) 个元素(RequestHeader 和 SearchPolicyDetails)构成的请求:
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<RequestHeader xmlns="http://xxx">
<RequestDate>2019-11-18+05:30</RequestDate>
<SourceSystemRequestNo>1001</SourceSystemRequestNo>
</RequestHeader>
<SearchPolicyDetails xmlns="http://xxx">
<policyNumber>xxxxxxxx</policyNumber>
<asOfDate>2019-12-24</asOfDate>
</SearchPolicyDetails>
</soap:Body>
</soap:Envelope>
如果我在我的 SOAP 端点上使用单个端点(即 RequestHeader 返回我想要的数据或 SearchPolicyDetails 返回我想要的数据。但是我想让它们连续运行,以便我可以从每个端点返回数据,我可以让两者都运行)变成一个单一的回应:
<s:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<RequestHeaderResponse>
{{DATA}}
</RequestHeaderResponse>
<SearchPolicyDetailsResponse>
{{DATA}}
</SearchPolicyDetailsResponse>
</s:Body>
</s:Envelope>
这是否可能,因为我不知道是否有可能让构建遗留系统的团队更新请求对象。目前,如果我在同一个请求中运行它们,则有效负载仅返回第一个元素的数据。