Ring Clojure 的 Web 框架开源项目

我要开发同款
匿名用户2019年05月21日
202阅读

技术信息

开源地址
https://github.com/ring-clojure/ring
授权协议
MIT

作品详情

Rig是一个Clojure的Web框架,它与Pytho的WSGI和Ruby的Rake非常类似。通过把HTTP的细节抽象为简单且模块化的API,Rig允许Web应用程序由模块化组件构成,这些组件可以在各种应用程序、Web服务器和Web框架之间共享,用来构建类型广泛的应用。

Rig充分体现了函数式编程的思想——通过一系列函数的组合形成了一个易于理解、扩展的HTTP处理链。

Rig规范里面有如下5个核心概念:

hadlers,应用逻辑处理的主要单元,由一个普通的Clojure函数实现middleware,为hadler增加额外功能adapter,将HTTP请求转为Clojure里的map,将Clojure里的map转为HTTP相应requestmap,HTTP请求的map表示resposemap,HTTP相应的map表示

这5个组件的关系可用下图表示(By Rig作者):

+---------------+|Middleware||+---------+|+---------++--------+|||<--request----||||||Hadler|||Adapter|<---->|Cliet||||---respose-->|||||+---------+|+---------++--------++---------------+

HelloWorld

(slear-rig.core(:require[rig.adapter.jetty:refer[ru-jetty]]))(defhadler[req]{:headers{}:status200:body"HelloWorld"})(defmiddleware[hadler]"Auditalogperrequest"(f[req](pritl(:urireq))(hadlerreq)))(defapp(->hadlermiddleware))(def-mai[&_](ru-jettyapp{:port3000}))

运行上面的程序,就可以启动一个 Web应用,然后在浏览器访问就可以返回HelloWorld,同时在控制台里面会打印出请求的uri。

功能介绍

Ring 是一个 Clojure 的 Web 框架,它与 Python 的 WSGI 和 Ruby 的 Rake 非常类似。通过把 HTTP 的细节抽象为简单且模块化的 API,Ring 允许 ...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论