Url rewriting 在前端映射微服务

Url rewriting 在前端映射微服务,url-rewriting,architecture,microservices,Url Rewriting,Architecture,Microservices,这可能是一个有点基于观点的问题,但我会尽量做到技术性,以保持相关性 考虑使用几种微服务:a,b,c 要在前端提供此功能,可以通过以下方式提供: https://host/services/a https://host/services/b https://host/services/c 然而,端点在不同的服务之间被分割的事实对于前端来说是无关紧要的,基本上,如果我们能够保证端点不会冲突,那么直接提供这些服务将是非常好的: a/endpoint1->https://host/services

这可能是一个有点基于观点的问题,但我会尽量做到技术性,以保持相关性

考虑使用几种微服务:
a
b
c

要在前端提供此功能,可以通过以下方式提供:

  • https://host/services/a
  • https://host/services/b
  • https://host/services/c
然而,端点在不同的服务之间被分割的事实对于前端来说是无关紧要的,基本上,如果我们能够保证端点不会冲突,那么直接提供这些服务将是非常好的:

  • a/endpoint1
    ->
    https://host/services/endpoint1
  • a/endpoint2
    ->
    https://host/services/endpoint2
  • b/endpoint3
    ->
    https://host/services/endpoint3
  • c/endpoint4
    ->
    https://host/services/endpoint4
要实现这种映射,需要列出所有端点,或者至少在代理服务中编写一些匹配模式。这对于前端团队来说是非常好的,但是不幸的是,它很容易刹车


映射微服务URL的最佳实践是什么?我唯一想到的是OpenApi的一些导出,FE可以处理这些导出以获得正确的路径。但是,每个服务都会生成自己的OpenApi json,因此我们基本上回到了原始问题。

您确定前端团队需要所有公开的端点吗?通常,前端与API网关进行对话,或者,就像现在酷孩子们所说的,“前端后端”

简而言之,它是一种特殊的服务,只负责公开前端所需的功能/端点。它将呼叫转发到相关服务,或者在必要时呼叫多个服务并聚合结果

在大多数情况下,这些API网关没有db,因为它们正在从其他服务检索所有数据。然而,他们可能会利用缓存层来加速事情


您甚至可以有多个API网关,每个前端一个(例如桌面、移动)。

您确定前端团队需要所有公开的端点吗?通常,前端与API网关进行对话,或者,就像现在酷孩子们所说的,“前端后端”

简而言之,它是一种特殊的服务,只负责公开前端所需的功能/端点。它将呼叫转发到相关服务,或者在必要时呼叫多个服务并聚合结果

在大多数情况下,这些API网关没有db,因为它们正在从其他服务检索所有数据。然而,他们可能会利用缓存层来加速事情

您甚至可以有多个API网关,每个前端一个(例如桌面、移动设备)。

您检查了吗?您检查了吗?