3

我想向开发人员打开我的 Rails 2.3 应用程序(托管在 Heroku 上)。我想到了两种方法:

  1. 使用 respond_to |格式| 应用程序,以及只允许授权开发人员 API 密钥的 before_filter
  2. 使用专用于 API 的第二个 Heroku 帐户,共享原始应用程序的数据库。现在,什么会更好:Rails、Sinatra 或Grape

我知道这是一个模糊的问题。你有什么好的文章或架构模式可以帮助我吗?

谢谢,

凯文

4

2 回答 2

7

我们使用葡萄。它很简单,并且允许更清晰的分离和语义。API 并不是真正的控制器。

于 2011-07-29T13:54:59.150 回答
4

我会添加一条新路线

website.com/api/widget/

website.com/api/another_service/

并制作一个在 API 溃败下看起来很自然的控制器。

然后,我将使用之前检查过的过滤器制作一个模块,但是您想检查 API 密钥。

class WidgetController < ActionController::Base
    include 'api_keyable'
    :before_filer :validate_api_key

    def create
        #However you create a widget from the params.
        # respond to XML, YAML, JSON, whatever
    end

end

如果您后来发现要在一个应用程序上处理 website.com/api/widgets 而在另一个应用程序上处理 website.com/api/wadgets,您的最终用户将永远不会知道并且您的代码不需要进行太多更改。

于 2010-12-20T12:57:12.843 回答