一个使用多个RESTful API的Web应用程序?

时间:2012-07-18 16:25:24

标签: api rest web-applications soa restful-architecture

我正在构建一个Web应用程序,它需要与多个(两个或三个)现有RESTful API进行通信。每个API都提供不同的数据和功能。 Web应用程序基本上将API粘合到一个用户界面中。

根据这种情况,我有几个问题:

  1. 这是常见吗?
  2. 这是不好的做法还是坏的架构?如果是这样, 有什么替代方案?
  3. (下面的图#1)我想使用JavaScript + AJAX与这些API进行交互。我是否会向不同的域发出AJAX请求,使用不同的绝对URL来解决它们?例如,http://api1.domain.com/somethinghttp://api.domain.com/something_else
  4. (下图#2)我应该让我的后端控制器与这些API交互,然后让我的前端(JavaScript)与我的应用程序的控制器进行交互,而不是(3)?基本上这将是一个门面。
  5. 我正在深入研究SOA,如果我听起来无知,请原谅我。 FWIW,我打算使用Ruby on Rails。

    图#1:

    enter image description here

    图#2:

    enter image description here

1 个答案:

答案 0 :(得分:1)

一般来说,一个宁静的api是应用程序核心的前端,如果需要,我不会介意不同的api apis。像jersey这样的一些非常简单的api非常容易在任何标准Java EE Web容器中使用,可以处理常见情况。其他宁静的(-ish)apis,如游戏,升降等,非常适合异步提供彗星请求,因此可以从单个工作站中获得高性能。

就不同的域而言,这可以在一个域之后抽象,使您的代理服务器进行负载平衡,https包装等。