【发布时间】:2019-10-30 15:03:43
【问题描述】:
我们正在尝试在我们的应用程序前面构建一个 API 网关(我们可能会尽快将应用程序拆分为微服务),但遇到了一些问题。
1 - 不同的 API 类型。
我们的应用中有两种API,大部分都是我们自己使用的(用户登录/注销,新闻添加/删除),我们这里称它们为Self-used API。并且某些 API 将被允许第三方使用,我们在这里称它们为Open API。
他们都应该通过网关吗?
2 - 不同的身份验证
自用 API 可能需要用户登录或拥有相关权限,Open API 将要求第三方应用获取密钥,我们将使用该密钥来识别和限制请求速率。
是否应该在网关内完成各种认证?如果是,自用api认证是业务相关的,是不是这个api网关不能被其他应用共享?
此外,第三方开发者将创建他们的应用程序并取回密钥,他们还可以更新/删除应用程序(类似于 Google API 控制台)。
我不确定这是否应该放在网关或其他微服务中。 IMO,我更喜欢将这些功能放在一个新的服务中,但是验证和速率限制是在网关中完成的,这意味着对于每个请求,网关都必须通过服务的键来查询用户,速率限制和其他信息,这将使网关与业务再次耦合。
【问题讨论】:
标签: api api-gateway