构建移动和Web的后端

时间:2014-06-13 20:04:14

标签: ruby-on-rails design-patterns architecture smartphone

我想构建一个可以从网络浏览器访问的应用程序,也可以从智能手机访问。

这样做的最佳方法是什么,这是我想到的2个选项:

  1. 构建将为浏览器提供服务的rails服务器,并且还将成为移动应用程序的rest api。

  2. 构建一个单独的rest API服务器,可以从移动应用程序访问,也可以从rails web服务器访问。

  3. 你怎么看?我相信它应该是相当标准的。 你对构建它有什么想法吗?

2 个答案:

答案 0 :(得分:10)

保留1个应用服务器(运行Rails)

-

<强> API

Rails具有非常强大的结构,您可以使用它来简单地创建RESTful API

#config/routes.rb
namespace :api do
   resources :posts #-> domain.com/api/posts
end

#app/controllers/api/posts_controller.rb
Class API::PostsController < ApplicationController
   respond_to :json
   # ... your methods here
end

这将允许您发送所需的请求

-

MIME Types

snarf所述的第二部分是约mime types。 Rails通过ActionDispatch::Http::MimeNegotiation中间件,允许您处理不同的类型请求,使您能够以最有效的方式处理api

这意味着您只能向json控制器发出api次请求 - 这意味着在开发移动应用时,您可以将api请求发送到您的Rails服务器,而不是一个单独的API个。

-

<强>建议

我强烈建议使用单个服务器,运行rails

有几个原因:

  
      
  1. 在Rails中创建API实际上非常简单
  2.   
  3. 使用一台服务器可以让您在一个地方处理所有数据
  4.   
  5. 保持单个服务器还可确保所有平台的用户真实性
  6.   

答案 1 :(得分:3)

这可以通过一台服务器轻松完成。

请参阅:ActionController::MimeResponds

在您的控制器中:

class PeopleController < ApplicationController
  def index
    @people = Person.all

    respond_to do |format|
      format.html
      format.json { render json: @people }
    end
  end
  ...

通过这种方式,您可以使用数据格式(在本例中为 html json 回复控制器收到的请求类型。

http://mydomain.com/people.json

http://mydomain.com/people.html