Sinatra – 簡易 Web Framework
json, jsonp, ruby, sinatra, web at June 21st, 2009 by 小影
Sinatra 是一個輕量級 Ruby Web Framework。
有了 Rails 為甚麼還要其他的 framework?因為這世上沒有 Golden Hammer ,使用適當的工具可以節省很多時間。
試一試 hello world 吧:
安裝 sinatra:
gem install sinatra
執行它:
ruby hello.rb
打開 browser 到 http://127.0.0.1/ ,你第一個 sinatra 的程式就在眼前。
如你所見,Sinatra 的概念就是讓我們定義程式的 “route” (url) ,以及它的回應。Route 可以是任何 HTTP method:
或者使用 URL 當 parameters :
建立 Restful Web Service 真是前所未有的簡單!要造一個給 Javascript 用的 Web Service ?試試配合 JQuery ( 這裡用了 Sinatra 的 “內置 View” ,實際應用時這些應該放進自己的檔案中):
JQuery 的 getJSON 會把返回的資料放回 callback ,即使是 cross domain 的 call 也行!
乍看之下 Sinatra 好像原始得像 C 寫的 CGI,但其實它把很多架構上的東西都替我們做了:buffering、http request handling、routing 等等等等。需要甚麼特別功能也可以輕易追加:session、view template(erb, saas, builder, haml)、authentication、ORM。最重要的是它非常簡單,不需包括你實際不需要的東西,對節省腦細胞真是最好的選擇!
延申閱讀
- Lightweight Webservices with Sinatra and RestClient – Rubycof 2008 講使用 Sinatra 造不同的 Restful Web Service
- Sinatra – 本文的例子多出自此
- Segmenter – 類似前面的例子,使用 jsonp 提供中文分詞服務的試驗。