根据您的体系结构,您可以使用一些非常酷的软件,如CoreOS的Weave(https://github.com/weaveworks/weave)。我们使用Docker将我们的应用程序分发到CoreOS节点,然后内部DNS由Weave处理。
这真的很棒,因为我们只需将端口转发到应用程序名称,然后我们即将离开。
例如,一个用户请求application.com/api/apiName/request/path
我们的网关与节点来实现。js,并且它使用/ api之后的apiName将其路由到该api,然后将该URL的以下路径附加到该调用本身。
所以来自网关的请求将作为apiName:8080/request/path在内部被代理。在这方面,当新服务出现时,API不需要更改,因为路径是根据请求动态创建的。
这很好,因为我们不必担心跟踪来自不同API的路径并将它们存储在某处。
如果不是这样,您将不得不维护一些(可能是外部的)端点列表,以使其更容易。这可以通过API本身以编程方式完成。
但是,我不确定你的要求是什么,而且正如威尔所回答的那样,它的确会产生相当大的基础设施成本。然而,我们的版本是快速和无痛的,因为我们不必担心在多个层次上进行代码更改,新的API可以免费获得我们的网关代理,日志记录和认证。
来源
2016-09-13 18:43:26
tcd
API网关就像一个安全的代理+日志记录。您可以将url传递给您想要访问的“产品”服务,网关将代理它。 – sed