1. 安装环境
-
安装ruby
参考 安装ruby -
安装bundler
gem install bundler
2. 新建工程
cd ~
git clone https://github.com/watsy0007/api_template.git
cd api_template
bundler install
3. 演示代码
asciinema官网上查看 api mock server
4 最终代码
app.rb
require 'sinatra'
require 'sinatra/reloader'
require 'json'
def data(file_name)
JSON.parse(File.open('./data/' + file_name + '.json').read)
end
def json(data = {}, code = 200)
status code
data.to_json
end
get '/' do
'hello world'
end
users = data('users')
get '/users' do
json users
end
get '/users/:id' do
user = users.find do |item|
item['id'] == params['id'].to_i
end
json user
end
post '/users' do
user = {}
user['id'] = users.last['id'] + 1
user['name'] = params['name']
users << user
json user, 201
end
delete '/users/:id' do
delete_users = users.delete_if do |item|
item['id'] == params['id'].to_i
end
json delete_users
end
5. 注意
因为使用了sinatra-reloader
,当app.rb文件更改时,会重新加载代码,所以演示时候会发起重复的请求。
网友评论