2011-03-01 6 views
11

Quiero construir una API simple a la que pueda acceder yo mismo en otros clientes. Quiero usar Rails 3 para compilarlo, pero no sé cómo hacerlo. Sé que Rails consiguió esto más o menos construir pero no sé cómo interactuar con él.Rails 3. Cómo agregar una API a una aplicación de rieles

¿Hay algún recurso en Internet que pueda leer sobre cómo convertir mi aplicación Rails 3 en un servidor con una API remota?

Agradecido por todas las entradas.

Respuesta

9

un buen punto de partida podría ser leyendo sobre REST and responders

Luego de interactuar con la API de otra aplicación raíles, puede utilizar ActiveResource. Hay un Railscast on it.

Un ejemplo:

#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 
4

Acaba de aparecer un blog post - describe en ejemplos cómo agregar API a una aplicación existente de Ruby on Rails. Cubre temas como controladores de Rails Metal, enrutamiento, vistas y seguridad. Espero que ayude.

10

A pesar de lo que ya se ha dicho, puede comenzar con rails api screencast. Aunque es solo para una aplicación API.

Si desea agregar y API a una aplicación de rieles completos existente, marque this blog post que cubre lo esencial en una API de Rails, incluidos consejos para acelerar.

Dado que este debe ser un requisito también, para asegurar su API también hay un screencast sobre el tema: #352 Securing an API

Yehuda Katz y el libro de Ryan Bigg, Rails 3 in Action, tiene un capítulo sobre la construcción de una API JSON basado en pruebas de la parte superior de la aplicación de ejemplo que se ejecuta en todo el libro.

El código para la aplicación de muestra en el libro, Ticketee, es de código abierto y se puede encontrar en GitHub. En particular, todo lo relacionado con API está dentro de/app/controllers/api y puede encontrar muchas pruebas de RSpec en/spec/api.

Cuestiones relacionadas