2010-12-20 75 views
3

我想打开我的Rails 2.3应用程序(在Heroku上托管)给开发人员。我想到了两种方法:如何将公共API添加到Rails应用程序?

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

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

感谢,

凯文

回答

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/wadgets website.com/api/widgets,最终用户将永远不会知道,你的代码不应该需要变化很大。

7

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