Поскольку Ruby on Rails следует REST, ваше приложение по умолчанию является собственным API. Например, скажем, у вас есть следующий контроллер:
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
respond_to do |format|
format.html
format.xml { render :xml => @user}
format.js
end
end
def index
@users = User.all
respond_to do |format|
format.html
format.xml { render :xml => @users}
format.js
end
end
end
Теперь, когда вы попадаете на этот контроллер через веб-браузер, он будет отображать ваши представления так, как вы ожидаете. Например:
GET /users/1 => /app/views/users/show.html.erb
GET /users => /app/views/users/index.html.erb
Однако, если вы измените ваши запросы на что-то вроде:
GET /users/1.xml
GET /users.xml
Вам будут возвращены данные XML вместо ваших просмотров HTML. Теперь вы можете получить доступ к этим данным из любого другого приложения , используя своего рода REST Client или просто вызвав cURL из любой командной строки.
Вы можете добавить любое расширение в конец вашего URL, и он найдет соответствующий раздел response_to.