我正在研究如何在我的项目中使用API网关。我当前的API网关模式是创建一个调用多个API的复合API层,并通过API网关公开复合API。
在其他地方的研究中,我发现如果使用API网关,不建议创建复合API,而是应该在API网关本身中进行组合。但是,如果我需要在API网关中进行组合,这不意味着我需要在那里公开一些域逻辑,因为我需要构造一个有意义的请求契约,并且可能需要一系列调用API吗?就我个人而言,我觉得这样做很不舒服。
有没有其他方法可以做到这一点而不暴露一些逻辑呢?
发布于 2018-05-06 06:22:39
根据我的研究,如果使用API网关,则不建议创建复合API,而是应该在API网关本身中进行组合。
你能告诉我你在哪里找到这份声明的吗?
服务组合不是api网关的任务。它是n个集成层的任务(您不需要有单独的esb产品或服务,在集成层中,您可以理解实现这些功能的任何服务或服务层,如组合、转换等)
您没有指定任何api产品或服务,它取决于产品是否能够执行任何逻辑(有些可以,有些不能)。即使api网关产品能够执行任何逻辑,我也不推荐它(您将不得不进行维护、错误和状态处理,..)
但是,如果我需要在API网关中进行组合,这是不是意味着我需要在那里公开一些域逻辑(就我个人而言,我觉得这样做不舒服),因为我需要构建一个有意义的请求契约,并且可能需要调用API的顺序?
你说composition in API gateway是什么意思?我假设在这个术语下执行一些逻辑。然后对api客户端隐藏逻辑。
或者,它可能是一层复合API听起来更好?
确实如此。
通常尝试将api网关视为智能代理(执行授权、节流、面向客户端的api存储、.)但是,公开的后端服务应该已经公开了。
https://stackoverflow.com/questions/50196633
复制相似问题