【发布时间】:2023-03-12 21:16:01
【问题描述】:
我正在实现一个服务,该服务需要调用另一个以我不知道的方式计算结果的服务。
假设我有以下情况: 我的代码中有一些地方,调用一个 HTTP 请求到一个定义的端点,另一个服务返回一个定义的结果。现在,我不能指定如何计算结果,但是我可以定义我期望的结果输出数据类型。我想强调这一点,否则我只会在我的服务中实现计算逻辑。
然后我会向用户描述它:
您需要提供一个 HTTP 服务,使用这个确切的端点,接收这些确切的参数,提供这个确切的结果类型,但是如何计算结果是您的工作。我只需要你的服务的 URL。
之后我的服务的用户会将他们的 HTTP 服务的 URL 配置到我的服务中,这样我就可以向{url}/defined-endpoint 发出 HTTP 请求。
我想不出另一个名字,只能用“服务注入”来描述这个概念,因为它类似于依赖注入,只是在代码中你不提供对象实例,而是提供一个被调用的服务通过http。
我的问题是:这个概念是否有模式或替代方案可以更优雅地解决将计算外包给另一个服务的一般问题?
【问题讨论】:
-
你的意思是"interface-based programming"?如果你愿意,你可以称之为“架构模式”。
-
我并不是指链接中描述的基于接口的编程,因为它指的是必须安装然后在编译时可用的包。我的意思是对服务的调用,在我的服务中期望来自特定端点的结果。事实上,这将是基于接口的编程,但不是使用类或包,而是使用正在运行的服务。
标签: http design-patterns microservices software-design