如何将公共API添加到Rails应用程序?

时间:2010-12-20 12:41:00

标签: ruby-on-rails ruby api sinatra grape-api

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

  1. 使用respond_to |格式|应用程序和仅允许授权开发人员API密钥的before_filter
  2. 使用专用于API的第二个Heroku帐户,共享原始应用程序的数据库。现在,更好的是:Rails,Sinatra或Grape
  3. 我知道这是一个模糊的问题。你有什么好的文章或建筑模式可以帮助我吗?

    谢谢,

    凯文

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分: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,那么您的最终用户将永远不会知道,并且您的代码不需要进行太多更改。

相关问题