写点什么

RESTfulie:一个创建超媒体感知服务与客户端的 Gem

  • 2009-11-30
  • 本文字数:1112 字

    阅读完需:约 4 分钟

Guilherme Silveira 投稿给 InfoQ 告知了一个新的 ruby gem 包的发布,在开发超媒体感知的服务和客户端的时候使用它将非常容易。他这样说到:

关于什么是将 rest/restful 的思想运用到应用中以及它的好处是什么,已经被谈论得很多了。去年, Mark Baker 写过关于 restful 应用里的超媒体内容。还有更多关于正式定义 HATEOAS 的尝试以及它的优势的文章。尽管在创建基于 web 的服务方便有着一些很好的应用,但是它仍然缺失我们日常生活中最好的一部分超链接与超媒体内容

他接着描述了定义一个订单的例子,这一订单将经过一系列定义好的转变,比如从未结算到结算等等。它允许将各种各样的转变映射到对应的动作…

复制代码
class Order < ActiveRecord::Base
state :unpaid, :allow => [:latest, :pay, :cancel]
state :cancelled, :allow => :latest
transition :latest, {:action => :show}
transition :cancel, {:action => :destroy}, :cancelled
transition :pay, {}, :preparing
end

它将会生成诸如这样的一个基于 atom 的嵌入超媒体的资源表示:

复制代码
<order>
<product>basic rails course</product>
<product>RESTful training</product>
<atom:link xmlns:atom="http://www.w3.org/2005/Atom"
href="http://www.caelum.com.br/orders/1" rel="latest" />
<atom:link xmlns:atom="http://www.w3.org/2005/Atom"
href="http://www.caelum.com.br/orders/1/pay" rel="pay" />
<atom:link xmlns:atom="http://www.w3.org/2005/Atom"
href="http://www.caelum.com.br/orders/1" rel="cancel" />
</order>

并且支持客户端调用通过消费这一资源表示而动态创建的方法:

复制代码
order = Order.from_web 'http://caelum.com.br/orders/1'
order.pay(payment)

Jim Webber ,他的 RESTBucks 文章和马上发布的 REST 著作启发了这一 gem 的创建,对此表示到

智多星 Guilherme Silveira 和 Adriano Almeida,Lucas Cavalcanti 一道,在 RESTful 服务的前沿掀起了风暴。[…] 更为重要的是,他们编写了一个通用的能够用于探寻这一协议的客户端。他们的样例服务托管于 GAE,并且在 GitHub 上发布了代码让大家参与。你们干得太棒了,并且非常及时。

Savas Parastatidis ,这本书的合著者,对此有如下的评论

I can’t wait for our book to finish so that everyone can check out our discussion of hypermedia and the stuff we’ve built. It’s really great to see Restfulie taking a very similar approach to ours.

关于这一 gem 用于创建 RESTful 服务和消费这些服务的客户端的具体例子可以在 GitHub 项目存储获得。

查看英文原文: RESTfulie - A Gem To Create Hypermedia Aware Services And Clients

2009-11-30 06:181843
用户头像

发布了 133 篇内容, 共 39.9 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

“泡沫”催生行业“繁荣”,切入具身智能赛道正当时!!

机器人头条

机器人 强化学习 大模型 人形机器人 具身智能

淘宝天猫API接口探索:商品详情与关键字搜索商品列表的实战应用

代码忍者

API 接口 pinduoduo API

阿里大佬翻遍全网Java面试文章,总结出这份1658页文档,GitHub收获25K+点赞

Summer

Java 编程 程序员 面试 大厂

ARM版CentOS Linux系统镜像文件(苹果M1专用) 及安装教程

Rose

普洱市具有资质等保测评机构在哪里?电话多少?

行云管家

网络安全 等保 云南 普洱市

SketchUp Pro 2023:专业级3D建模,轻松实现创意构想

Rose

创意无限,绘图神器!OmniGraffle Pro,设计新高度

Rose

Qt 开发 macOS 应用的技术难点

北京木奇移动技术有限公司

软件外包公司 QT外包开发 QT开发公司

零代码赋能高等教育数字化转型的实践与思考

明道云

macOS Developer Beta Access Utility(苹果开发者工具)

Rose

MAMP PRO永久版:本地开发神器!

Rose

车企接连入局人形机器人赛道,「小米」、「小鹏」能否维持先发优势

机器人头条

小米 人形机器人 具身智能 小鹏

一个明知没啥前途也要开张的市场开张了

明道云

想在 Java 八股文面试中脱颖而出?这1000 道互联网大厂 工程师面试题必不可少

Summer

Java 程序员 面试 架构师 编程开发

心理行业需要用到堡垒机的几个情形讲解

行云管家

心理 网络安全 等保 堡垒机

EndNote X9汉化安装包 及EndNote X9安装教程

Rose

解锁数据洞察新境界!Tableau Desktop Pro 2020

Rose

audirvana mac中文破解版 原生无损音乐播放器

Rose

哪款远程控制软件最合适日常使用?几款远控软件盘点

科技热闻

RESTfulie:一个创建超媒体感知服务与客户端的Gem_SOA_Dilip Krishnan_InfoQ精选文章