我想构建一个可以在其他客户端访问的简单API。我想使用Rails 3来构建它但我不知道该怎么做。我知道Rails或多或少都有这种内容,但我不知道如何与它进行交互。
互联网上有没有关于如何将我的Rails 3应用程序转换为带有远程API的服务器的资源?
感谢所有输入。
答案 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金属控制器,路由,视图和安全性等主题。 希望这会有所帮助。