Rails 3: Как правильно реагировать на действия REST с JSON в rails? - PullRequest
14 голосов
/ 04 апреля 2010

Я пытаюсь создать API для моего приложения rails, используя ответы JSON для контроллеров ресурсов RESTful. Это новый опыт для меня, поэтому я ищу некоторые рекомендации и указатели. Для начала:

  1. В приложении rails каков "правильный" способ ответа с помощью JSON на методы контроллера REST-ful? (создать, обновить, уничтожить)
  2. Существует ли идиоматический способ обозначения успеха / неудачи в ответе JSON?

Дополнительная информация:

  • Я сейчас работаю с рельсами 3.0.beta2
  • Я бы не хотел использовать плагин или гем для выполнения этой работы, моя цель - лучше понять, как создать API для rails 3.
  • Ссылки на места, где я мог бы найти больше информации по этой теме, также приветствуются, некоторые быстрые поиски в Google не принесли мне много пользы.

1 Ответ

29 голосов
/ 04 апреля 2010
#config/routes.rb
MyApplicationsName::Application.routes.draw do
  resources :articles
end

#app/controllers/articles_controller.rb
class ArticlesController < ActionController::Base

  # so that respond_with knows which formats are
  # allowed in each of the individual actions
  respond_to :json

  def index
    @articles = Article.all
    respond_with @articles
  end

  def show
    @article = Article.find(params[:id])
    respond_with @article
  end

  ...

  def update
    @article = Article.find(params[:id])
    @article.update_attributes(params[:article])

    # respond_with will automatically check @article.valid?
    # and respond appropriately ... @article.valid? will
    # be set based on whether @article.update_attributes
    # succeeded past all the validations
    # if @article.valid? then respond_with will redirect to
    # to the show page; if !@article.valid? then respond_with
    # will show the :edit view, including @article.errors
    respond_with @article
  end

  ...

end
...