Back

ruby - grape入门, 同时使用: rack , rackup, sinatra

发布时间: 2018-05-28 07:40:00

在使用grape 的时候,遇到了 rackup.

记得当初在摩托的时候(2010年?) 就看过老潘用rack,  当时觉得这个小东西好简单,好简陋. 

今天发现Grape的DEMO中又有这个,所以看了一下正式的文档. 

参考: https://rack.github.io/

rack: a ruby webserver interface 

作用跟sinatra一样, 是一个简单到不能再简单的 小工具. 可以认为是个server ( 实际上是个webserver interface) 

require 'sinatra'
require 'grape'

class API < Grape::API
  get :hello do
    { hello: 'world lalala'}
  end 

end
 
run API     # 这个run  , 就是 rackup的方法   

把上面内容保存到 test.rb 文件中,然后运行 rackup test.rb 就可以了

结论: 没啥用. 仅仅在看某些文档的时候,知道它能跑起个server就可以了.真正用的时候, 不会用到这么底层的东东. 

默认是跑在 9292端口. 

grape入门:    https://github.com/ruby-grape/grape

# config.ru
require 'sinatra'
require 'grape'

class API < Grape::API


  format :json

  params do
    requires :name, type: String
    optional :number, type: String, regexp: /abc.*/
    optional :page, type: Integer
  end 
  get :hello do
    {   
      hello: "hello #{params[:name]}, #{params[:number]}"
    }   
  end

end

run API 

然后直接运行:  $ rackup config.ru    就可以了. 

Back