【发布时间】:2021-11-08 02:31:35
【问题描述】:
上下文
让我们想象一个简单的微服务架构(例如 2-3 个微服务)。微服务是基于域的,API 网关到位,一切都应该是这样。同时,微服务 API 被公共移动应用程序、管理 UI 和其他用于 S2S 通信的服务使用,因此,我们有三个可能的 API 消费者。取决于消费者,响应 DTO 不同,但业务流程可能相同(例如 GET /users 端点的响应对于消费者应用程序和管理 UI 具有不同的 DTO,但从技术上讲,数据是取自同一个数据库)。
问题
在这种情况下,您如何细分 API?您是否使用 external、internal 等命名空间?
此外,请随时分享您在如何细分 API 方面的经验。
提前致谢!
【问题讨论】:
-
同意下面的@JArgente - 不同的结果应该会引导您走向不同的端点。您当然可以使用相同的端点并使用查询参数或请求标头来区分,但这意味着相同的端点使用多个版本的逻辑。多个端点共享一些核心逻辑是一种很好的模式,使用大量逻辑版本的少数端点似乎不那么明确。
标签: api rest architecture microservices api-design