我加入了一个项目,该项目已经构建了所有的微服务后端,并且它们有许多API端点,如下所示:
example1.com/api/a
example2.com/api/b
example3.com/api/c
example4.com/api/d
最近,公司的经理让我把所有的端点聚合成一个,我们怎么可能只有一个API端点?
如下所示:
example.com/api/a or b or c/*
如果没有开发人员的帮助,这可能吗?我的意思是,没有代码方面的改变?
我的一些想法是。
- Nginx proxy in front
- API GW(但不确定哪一个套件最适合这个)
如果您只想获得一个端点,而不是在一个服务中聚合和合并数据,AWS API Gateway
将帮助您。它将成为客户端应用程序的单一入口点,您可以在网关上的多个后端服务上重新路由多个请求,而无需更改任何代码。
你可以在API网关上做一些集成:
https://api-gw.example.com/users→服务集成请求:example1.com/api/a
https://api-gw.example.com/orders→服务集成请求:example2.com/api/b
此外,您可以在Gateway上为这些资源设置单一授权机制,如Cognito
、AWS_IAM
或Custom Authorization
。
如果你需要聚合一些API响应,你可以使用lambdas或BFF Pattern。