在单独的 API 中抽象出常见的客户关注点是否有意义

Does it make sense to abstract common client concerns in a separate API

最近我在不同的客户端 API 工作,例如 HTTP ReST 客户端、消息传递客户端和数据库客户端。 在每种情况下,都出现了同样的问题,具体如下:

在我看来,上述问题可以在单独的 API 中从底层请求中抽象出来。此外,由于对上述问题进行编码的复杂性,不多次支付成本是有道理的。

因此,我希望有一个通用的客户端助手 API,它允许我重试和批处理任何类型的请求,同时异步执行所有请求。 它将是一种任务执行器 API,但没有其他复杂性(例如调度,因为只有一个任务需要执行)。

因此我的问题,还是我遗漏了什么?

我会说将它们分开。我的猜测是您会为其中的每一个找到第 3 方解决方案,但我不知道有任何库可以同时完成这三个。

我不确定您的编程是否在 Java,但我认为 apache 项目在其 commons-* 库中分割实用程序方面做得很好。你可能想从那里汲取一些灵感。

https://commons.apache.org/