微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

搭建最简webservice,ruby+WEBrick+rack+grape

因为一直做得是ios,客户端,对于服务器没什么太多概念。这次搭个服务器好费劲。

之前断断续续看过一点rails,这两天想写个app,又想写些api。但是感觉rails好烦,需要做很多事情才能出一个resource。所以我搜索了下,有没有办法能方便rails写restful的api。结果,rails写restful没看到,倒是看到了其他。

1、rails的路由解析效率很低。http://robbinfan.com/blog/40/ruby-off-rails  csdn robin的文章。分析了各种方式的效率。rails好慢。。。but ruby并不慢,使用eventio方式cramp甚至比node.js更快。这个文章可以关注的还有多线程,纤程,event io几种方式。好了,这个不是重点。结论是,假如光做webservice的服务器,rails框架不合适,rails适合普通的web站点。所以需要找个其他的框架。

2、ruby的grape写api很方便。http://robbinfan.com/blog/45/ruby-framework-benchmark  虽然这个文章是写性能的,但是里面提到,假如单写api,用grape更方便。


到此,决定使用grape,于是找到官方文档,打算继承一个试试。https://github.com/intridea/grape

resource :state do
      desc "Return a pong."
      get :ping do
        "pong"
      end
end
貌似确实写起来很简单。

but,我要怎么运行这家伙?

以前一直是完全使用rails,不清楚怎么起得服务器。。。这下抓瞎了。

--------昏哥线--------

省略搜索

--------昏哥线2------

总算弄明白,最简单的,可以启一个WEBrick服务器,然后使用rack启动。

if $0 == __FILE__
  require 'rack'
  Rack::Handler::WEBrick.run MeetingAPI
end

放到api文件末尾,ruby执行一下


或者配置config.ru

require './meeting_api'

run MeetingAPI

然后rackup一下。

rackup其实就是调用了前面的run

然后其余的配置,是通过rack:server.start传入的。

哦了,这个项目只有两个文件,木有乱七八糟其他我不懂的东西,很简单。哈哈哈


其余参考:

1、https://github.com/dblock/grape-on-rack,grape-on-rack,里面还有布置grape到heroku上去。

2、https://github.com/rack/rack/wiki/Tutorials   rack 教程,

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐