我的团队继承了一个 WCF 服务,该服务用作多个后端系统的网关。每次调用此服务的第一步是基于标识调用者的上下文键的决策点。这个决策点本质上是一个工厂,它根据请求应该被定向到哪个后端系统来提供一个处理程序。
我们正在考虑将此服务简化为 RESTful 服务,并正在考虑将上下文密钥作为请求标头的一部分传递的好处和后果,而不是将上下文密钥作为参数添加到每个调用服务。一方面,在查看每个后端系统的服务的单独实现时,调用者的上下文似乎是一个正交的问题。但是,使用自定义标头让我感到有点不舒服,因为调用服务的基本细节从可见界面中被掩盖了。我应该注意到这是一个纯粹的内部解决方案,它减轻了我对界面可见性的一些担忧,但即使在内部,也无法确定下一个尝试连接或修改服务的工程师是否会意识到这一点隐藏的细节。