数量导入

先是,跟爬虫一样,我们先建一个model,字段照搬。而在rails中那么些任务只必要一行代码就足以成功:

rails g model review title cover_image summary score

更令人可以游艇的地点就是,rails中的model与数据库是无缝连接的,只要配置好数据库设置,model的始建与收获等在底部与数据库交互的细节是一心透明的。

开创好model之后,我们开辟目录下的db/seed.rb文件,将事先的json文件作为数据库开首种子,写入数据库中:

local_path = "/Users/Kino/Development/YouxiaReview/yxReview/items.json"
records = JSON.parse(File.read(local_path))
records.each do |record|
  Review.create!(title: record['title'],
    cover_image: record['cover_image'],
    summary: record['summary'],
    score: record['score'])
end

为了简单起见,那里的local_path我一贯用当地的相对路径。
接下去,大家在终点输入

rake db:migrate

rake db:seed

分级展开数据库的动迁与种子数据的载入,相当于根据model在本土创立数据库并写入一些上马数据。

假使需求测试数据库是或不是成功开创并写入数据,能够在终端输入rails console接下来输入Review.all查阅是还是不是打印出相应的数码。

到这一步,前期准备干活就正式达成了。


API接口

所谓工欲善其事必先利其器,在rails中,有个叫grape的库专门用于API接口的编排REST
API,于是大家先装为敬。
开拓根目录下的Gemfile文件,并累加一行gem 'grape'

下一场终端中输入bundle install展开设置。

安装到位后,在编写api从前,我们先在config/application.rb中投入上面两行,以便rails程序能鉴别并载入大家的api文件夹

config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
config.autoload_paths += Dir[Rails.root.join('app', 'api', '*')]

下一场进入app目录,创设api目录并创立api.rb如下:

api目录结构

api.rb编排内容如下

class API < Grape::API
  format :json
  prefix 'api'
  version 'v1', using: :path

  resource :reviews do
    desc "List all review"
    get do
      Review.all
    end
  end
end

这边表明了数码格式为json,并且指定resource为reviews,使用get方法再次来到数据库中装有的Review.all对象。

鉴于当下的数据量非凡少,我那边为了简(tou)单(lan)间接重临了富有数据,在形似景况下都是急需排序和分页的,大概是以此样子:

params do
  requires :page, :type =>Integer, :desc => "page"
  requires :size, :type =>Integer, :desc => "size"
end

get do
  Review.order(created_at: :desc).page(params[:page]).per(params[:size])
end

在那个时候rails的路由还没能识别到api接口,大家必要在根目录下的config/routes.rb中加入

mount API => '/'

接下来一切准备妥当,我们在极限中输入 rails server将服务器跑起来。

如无意外,rails将在地面建立一个监听端口3000的服务端,我们在浏览器中输入
http://localhost:3000/api/v1/reviews

浏览器访问截图

安装与初叶化

rails环境的装置,称不上越发简单,但也一见倾心。我也是照猫画虎的,甩一个学科就好
怎么着高效科学的设置 Ruby, Rails
运行条件

安装好将来,跟scrapy爬虫一样,大家只须求在指令行用一行代码创制工程。

先是成立一个yx_review_serverjson,目录并跻身,
然后

rails new yx_review

稍候片刻,一个完好无损的工程突兀而起,巍峨地竖起在巅峰之巅。

Atom IDE

里程碑

作为一个极简完毕,它的自我存在重重不完善,比如api分版本分结构的急需,比如接口带参数以及表达的内需等等。可是对于一个iOS开发者以及服务端小白来说,这是拥有里程碑的意思的,下一篇,回到iOS的主战场,快捷打造一个炫酷(并不)的App。


参考Link:

何以高效科学的安装 Ruby, Rails
运行环境

Ruby
JSON

Ruby on Rails
實戰聖經

Build Great APIS with
Grape


名目繁多链接
从零开头开发一个App(1)-
Scrapy爬虫

从零伊始开发一个App(2)- 简易REST
API服务端

从零开头开发一个App(3)-
iOS客户端

上篇文章讲到使用scrapy爬虫易如反掌地爬取到了我们必要的数据内容,并且已经保存在本地文件中。这一篇,大家换一个姿态,开启rails服务端之旅。

相关文章

网站地图xml地图