2013-02-14 50 views
3

我需要构建一个基本公开某些URI端点并将它们映射到任意数量的后端URL的API。构建路由API

所以API将有映射在蒙戈是这样的:

{"name": "example", "from": "/resources", "to": "http://backendservice.com/1/billing", "method": "POST"} 

{"name": "example1", "from": "/resources/:id", "to": "http://backendservice.com/1/billing/:id", "method": "GET"} 

{"name": "example2", "from": "/somethingelse/*", "to": "http://google.com/foo/*", "method": "ANY"} 

这里的目的是有一个单一入口点我们所有的客户可以用它来访问所有的各种服务。它还允许简化日志记录和报告。

因此,如果我们请求api.example.org/resources,系统会将传入的请求URL与目标URL进行匹配。将请求发送到目标并接收响应,进行适当的日志记录并处理任何错误。说得通?

我的问题(S):

是否有任何现成的开源解决方案,做这的?

你认为哪个框架/库等是一个好的起点。我已经看过Goliath(Ruby),但只要它是开源和Linux,就不限于任何语言。

谢谢。

回答

0

如果你愿意超越Ruby,你可以使用Python库Flask。另外,您可以使用Ruby的内置WEBrick HTTP服务器库来完成此操作。只需创建一个在URL字典中执行查找的servlet,或者使用元编程动态创建许多servlet,然后将它们装载到不同的URL上。

+0

如果我没有记错,WEBrick很慢,无法处理并发请求? – Johandk 2013-02-14 20:00:02

+0

烧瓶看起来很酷,但它与使用Sinatra有什么不同? – Johandk 2013-02-14 20:05:28

+0

@Johandk:我认为现在可以,但让我检查一下。 – Linuxios 2013-02-14 22:33:52

0

WSO2API管理器是一个完全开源的产品,它可以在apcheV2许可下使用。

在哪里可以通过APIManager和ESB实现多个端点配置。 当您发布一个API时,您可能需要指向一个服务端点(它可以是代理端点/另一个REST API,位于wso2esb处),并且从ESB端您可以根据请求将请求路由到多个端点。

+0

现在检查了这一点。看起来很有希望。 – Johandk 2013-02-14 20:05:55