我们正在将整体应用程序拆分为微服务。这将是一个渐进的过程,这意味着最初我们将从2个微服务开始,稍后我们将它们分成更多等等。
monoligh公开了一个REST API,它提供了管理数十个不同实体的方法(例如用户,user_types,角色,role_types等)。整体上只有一个REST API的消费者 - 一个Javascript前端应用程序。
我们目前正在研究如何配置API网关(Zuul)的两种可能性:
网址将包含微服务名称,例如/api/dictionary
将/api/dictionary/user_types
和/api/dictionary/role_types
投放,而/api/data
将投放/api/data/users
和/api/data/roles
。这意味着随着我们创建更多微服务,URL将随时间而变化。每次我们这样做,消费者(前端)都必须改变。
网址将基于实体名称,例如/api/users
,/api/user_types
,/api/roles
和/api/role_types
。缺点是Zuul配置必须包含系统管理的每个实体的显式配置。
上述哪种方法是正确的?
答案 0 :(得分:2)
Manmay的说法是正确的。你应该采用第一种方法来获得长期收益。 如果您仍想要替代方案,那么您可以通过以下方式配置API网关来结合这两种方法:它将路由您的请求
通过这种方法,您不必妥协任何问题,如维护或客户端更改。