高达篇文章说道到利用scrapy爬虫轻而易举地爬取到了咱们用的多寡内容,并且一度保存于地头文件中。这同首,我们换一个姿态,开启rails服务端之同。

安及初始化

rails环境之安,称不达标特别简单,但也容易。我为是照本宣科的,甩一个科目就好
哪迅速科学的设置 Ruby, Rails
运行环境

设置好之后,跟scrapy爬虫一样,我们一味需要以指令行用一行代码创建工程。

首先创建一个yx_review_server目录并上,
然后

rails new yx_review

稍候片刻,一个完好的工程拔地而起,巍峨地竖起于极限的巅峰。

Atom IDE

数导入

率先,跟爬虫一样,我们先盖一个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

浏览器访问截图

里程碑

作为一个极简实现,它的本人在很多休完美,比如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客户端

相关文章

网站地图xml地图