【发布时间】:2014-07-24 02:03:17
【问题描述】:
问题是关于特性/能力的。试图了解 Spring Integration 是否可用于为 RESTful Web 服务构建网关。本质上,希望构建一个代理/网关层来拦截对后端 REST 服务的所有调用并添加安全性、OAUTH、Throttling 等规则。我已经查看了 apache synapse、wso2 API Manager 并希望使用 Spring 构建类似的服务。
【问题讨论】:
问题是关于特性/能力的。试图了解 Spring Integration 是否可用于为 RESTful Web 服务构建网关。本质上,希望构建一个代理/网关层来拦截对后端 REST 服务的所有调用并添加安全性、OAUTH、Throttling 等规则。我已经查看了 apache synapse、wso2 API Manager 并希望使用 Spring 构建类似的服务。
【问题讨论】:
是的;从 Spring Integration 3.0(当前版本为 4.0.2)开始,您可以为 http 入站网关提供多个路径(foo/{bar}、/baz/{qux})等。在以前的版本中,您需要为每个 URL 设置一个单独的网关,这将对于大型服务来说是不切实际的。
根据复杂性,您可能需要考虑直接使用Spring MVC's ReST support 实现restful 前端,并在必要时使用Messaging Gateway 与后端Spring Integration 流交互。
spring-security-oauth project 可用于 oauth。
编辑:还有一个rest-http sample。
【讨论】:
path 更改为 path=/receivegateway/foo/{bar},/receivegateway/baz/{qux} 等。http 网关在 Spring MVC 中运行 (它只是从 DispatcherServlet 的路径设置请求映射),因此应用安全层应该与任何 Spring MVC 应用程序相同。
inbound-gateway -> outbound-gateway。