Rails 3.如何将API添加到rails应用程序

时间:2011-03-01 16:28:33

标签: api ruby-on-rails-3

我想构建一个可以在其他客户端访问的简单API。我想使用Rails 3来构建它但我不知道该怎么做。我知道Rails或多或少都有这种内容,但我不知道如何与它进行交互。

互联网上有没有关于如何将我的Rails 3应用程序转换为带有远程API的服务器的资源?

感谢所有输入。

4 个答案:

答案 0 :(得分:10)

尽管已经说过,但你可以从rails api screencast开始。虽然它仅适用于API应用程序。

如果您想为现有的完整rails应用添加API,请查看this blog post,其中包含Rails API的基本知识,包括加速提示。

由于这也是一项要求,为了保护您的API,还有关于该主题的截屏视频:#352 Securing an API

Yehuda Katz和Ryan Bigg的书Rails 3 in Action,有一章介绍了在贯穿整本书的示例应用程序之上构建测试驱动的JSON API。

本书中示例应用程序的代码Ticketee是开源的,可以在GitHub上找到。特别是,与API相关的所有内容都在/ app / controllers / api下命名,你可以在/ spec / api中找到大量的RSpec测试。

答案 1 :(得分:9)

一个好的起点可能是在REST and responders

上阅读

然后,要从另一个rails应用程序与API进行交互,您可以使用ActiveResource。有Railscast on it

一个例子:

#API side
class ProductsController < ApplicationController
  respond_to :json

  def index
    @products = Product.all
    respond_with(@products)
  end
end

#Client
# models/product.rb
class Product < ActiveResource::Base
  self.site = "http://your-api-app.com"
end

答案 2 :(得分:4)

rails-api gem是一个Rails子集,仅包含创建API应用程序所需的最少模块。它的目的是比普通的Rails应用程序更轻巧,更快。

检查http://railscasts.com/episodes/348-the-rails-api-gem以获取有关如何使用gem的精彩教程。

答案 3 :(得分:4)

最近提出了blog post - 在示例中描述了如何将API添加到现有的Ruby on Rails应用程序中。涵盖Rails金属控制器,路由,视图和安全性等主题。 希望这会有所帮助。