Sinatra:一个优雅地包装了Web开发的DSL
Sinatra程序的三个基本组成部分:
路由(route):
'/' 就是路由。路由可以是单一的路径,或者带有参数的路径(比如 /:name),甚至是正则表达式。对于Sinatra不知道的路由,Sinatra会返回404错误(作为App运行的时候),或者传递给下面的中间件(作为中间件运行的时候)。
方法(method):
get是方法。在Sinatra中,HTTP的四个方法GET/POST/PUT/DELETE都有相应的方法get/post/put/delete。
处理器(handler):
处理器就是最后的代码块,处理器的返回值就是Sinatra返回给客户端(主要是浏览器)的内容。返回值主要以字符串为主,也可以是包含状态码,消息头,消息体的数组。
Rack在Ruby的世界里面是一种构建服务端的最基本,但也是非常有意思的方式。 而且理解Rack也是理解Sinatra的基础,毕竟Sinatra是在Rack的基础上写出来的。 我们可以只用Rack搭建一个简单的后端程序。 直接上实例,代码保存到 config.ru ,然后在该文件夹下执行 rackup ,默认会在 http://localhost:9292 下显示。
构建一个Sinatra
Sinatra是一个基于Ruby的快速开发Web应用程序基于特定域(domain-specific)语言。在一些小项目中使用过它后,我决定一探究竟。
什么是Sinatra?
Sinatra的核心是Rack。 我写过一篇文章关于Rack,如果你对Rack的工作原理有些困惑,那篇文章值得一读。Sinatra构建在Rack之上:它在Rack之上提供了一个给力的DSL。