Sinatra视图和restapi

Sinatra视图和restapi,rest,sinatra,erb,Rest,Sinatra,Erb,我是新来的,但不是ruby的新手 我有一个关于西纳特拉的小问题。 如果我想使用RESTAPI功能从源(如mysql)生成数据。我如何决定使用rest响应(仅json或其他格式的值)或视图(html.erb) routes.rb get '/api/movies/:id' do movie ||= Movie.get(params[:id]) || halt(404) format_response(movie, request.accept) end def format_respon

我是新来的,但不是ruby的新手

我有一个关于西纳特拉的小问题。 如果我想使用RESTAPI功能从源(如mysql)生成数据。我如何决定使用rest响应(仅json或其他格式的值)或视图(html.erb)

routes.rb

get '/api/movies/:id' do
  movie ||= Movie.get(params[:id]) || halt(404)
  format_response(movie, request.accept)
end
def format_response(data, accept)
  accept.each do |type|
    return data.to_xml  if type.downcase.eql? 'text/xml'
    return data.to_json if type.downcase.eql? 'application/json'
    return data.to_yaml if type.downcase.eql? 'text/x-yaml'
    return data.to_csv  if type.downcase.eql? 'text/csv'
    return data.to_json
  end
end
响应\u格式.rb

get '/api/movies/:id' do
  movie ||= Movie.get(params[:id]) || halt(404)
  format_response(movie, request.accept)
end
def format_response(data, accept)
  accept.each do |type|
    return data.to_xml  if type.downcase.eql? 'text/xml'
    return data.to_json if type.downcase.eql? 'application/json'
    return data.to_yaml if type.downcase.eql? 'text/x-yaml'
    return data.to_csv  if type.downcase.eql? 'text/csv'
    return data.to_json
  end
end
类似:(按路线决定)

或类似:(在助手中决定)