近日, Silk 开源了 Haskell 的一个 REST 框架,叫作“ rest ”,rest 为 REST 服务的定义提供了 DSL,它能够在目前主流的 web 框架中运行,如 happstack 框架。rest 具有类型安全的 URL、抽象的格式类型、业务逻辑和 API 细节完全分离等特性。
rest 由以下三个主要的组件构成:
- rest-core : 用来版本化定义 REST 资源的 DSL
- rest-gen :从一个 API 自动生成文档以及 Haskell、JavaScript 和 Ruby 客户端
- rest-snap 、 rest-happstack 、 rest-wai :使用相应的 WEB 服务器运行资源的驱动
rest 还包括其他一些包,如 rest-client、rest-types、 json-schema、 generic-aeson 等包,这些包可以被 rest 调用或者与 rest 一起使用。读者可以从 rest 发布的公告中,获得更多详细信息。
流行的Haskell Web 框架已经提供了诸如类型安全的URL、路由、模板等功能。然而,使用rest 主要优势是允许开发者实现业务逻辑和API 定义的分离,如路由、解析和序列化输入/ 输出、支持特定资源的请求类型。为了做到这一点,rest 提供了多种智能的构造函数,开发者可以用这些构造函数封装为自己的强类型函数。
开发者可以查看相关教程,获得更多rest 相关信息或者使用rest。
查看英文原文: http://www.infoq.com/news/2014/07/rest-haskell
感谢曹知渊对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论