为数据存储创建基本RESTful API服务器

时间:2014-06-11 01:06:53

标签: ruby-on-rails api rest nginx

我有最基本的问题,但我想的越多,它就越复杂。

我一直在使用rails,它遵循MVC范例,因为db和api调用是通过控制器生成的调用抽象出来的。这似乎对我想要的东西太重了。

1)我想要一个位于我的数据存储区前面的简单(基本)Web服务器。 (其内容恰好存储在以下目录结构中:/ LOCATIONS / LOCATION / PRESENTERS / PRESENTER / YEAR / MN /)

2)我希望能够在该目录结构中托管json文件并根据需要获取它们。

3)我希望能够将PUT / POST附加到那些json文件。

似乎所有我需要的是nginx,我的数据存储区作为文档根目录和index.html文件在结构中的关键位置(例如site.com/Locations/index.html,site.com/locations/ SF /主持人/所罗门/ index.html中)?

我如何开始解决这个问题,(不使用粗略的控制器)?

1 个答案:

答案 0 :(得分:1)

MVC框架

  

不使用控制器

你必须知道那里有many more frameworks而不是Rails,所以当你询问使用系统"坐在你的数据存储区" 时,你真的在寻找不同的框架来处理请求,其中有很多。

您遇到的问题是如何保持数据一致性,同时确保您可以处理相关的API请求(通过JSON)。答案是查看如何您正在检查工作的系统。

我只能真正担保Rails(它是我唯一拥有生产应用程序的框架) -

-

<强>滑轨

创建API in Rails非常简单 - 我不知道为什么你会考虑做其他事情

使用MVC原则可能看起来很臃肿,但它提供的安全性,结构和可扩展性是无与伦比的。

以下是如何在Rails中创建API:

#config/routes.rb
namespace :api do 
   resources :controller, only: [:update, :create] #-> only PUT / POST
end

#app/controllers/api/your_controller.rb
class API::YourController < ApplicationController
   respond_to :json

   def update
      # handle PUT request
   end

   def create
      # handle POST request
   end
end

#app/models/model.rb
Class Model < ActiveRecord::Base
end

这就是您所需要的一切 - 您将能够访问domain.com/api/controller.json POST来创建数据,并domain.com/api/controller/4.json PUT来更新数据:)