春季HATEOAS:微服务架构可行吗?

问题描述

我知道已经问过这个问题,但找不到满意的答案。 我开始更深入地研究构建一个真正的静态API,并且我喜欢使用链接进行解耦的约束。因此,我建立了我的第一个服务(使用java / spring),并且运行良好(尽管我在寻找正确的格式时有些挣扎,但这是另一个问题)。第一步之后,我考虑了我的现实用例。 Micorservices。高度分离的单个服务。所以我做了我以前的情况,但遇到了一些问题或疑问。

场景:

我的设置包括一个反向代理(作为服务发现和api网关的Traefik)和2个微服务。此外,还有一个openid连接安全层。我的服务是播放器服务和团队服务。

因此,通过身份验证后,我获得了带有用户ID的访问令牌,并且可以调用player/userId来获取玩家信息,并可以调用teams?playerId=userId来获取玩家的所有队伍。

我认为,我会在两个回复中都链接相反的服务。 player/userId将链接到teams?playerId=userId,反之亦然。

问题:

除了通过硬编码url链接之外,我没有找到解决方案。但这带来了很多失败,我无法想象这是现实应用中使用的解决方案。我的意思是,想象一下您的api更高级,您必须链接到10个资源。如果有什么变化,您已经重构并重新部署了所有这些。 除了同步问题之外,在这种情况下如何处理状态。我的意思是,REST都是关于状态转移的。因此,如果球员不在球队中,我将不提供球员与球队服务的链接。当然,我可以将团队ID作为属性添加到玩家,以决定是否包括链接。但这又增加了服务之间的耦合。
我越潜越多,就会发现更多的障碍,而我将只留在我的春季休息文档上,而忽略了休息的核心,我对此感到遗憾。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)