“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

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:181567
用户头像

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

关注

评论

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

大模型应用开发:为产品创建一个AI客服/智能助手

快乐非自愿限量之名

大数据 大模型 大数据人工智能

企业借助聚道云软件连接器,轻松实现员工福利管理优化!

聚道云软件连接器

案例分享

人工智能与低代码开发: 创新技术的未来

不在线第一只蜗牛

人工智能 低代码

【教程】iOS如何抓取HTTP和HTTPS数据包经验分享

雪奈椰子

点击查看 Milvus 社区十大关键词(上)

Zilliz

开源社区 Milvus 向量数据库 云原生向量数据库

Golang并发控制方式有几种?

EquatorCoco

Go 大数据 开发语言

提升企业级数据处理效率!3.0 系列版本的四个集群优化点详解

TDengine

tdengine 时序数据库

跨境远程控制软件分享,为何放弃向日葵?

小喵子

远程 远程软件 远程桌面办公

软件测试学习笔记丨http/https/tcp握手和回收/mock相关解释

测试人

软件测试

听GPT 讲Rust Cargo源代码(1)

fliter

用户故事地图实际应用

敏捷开发

产品设计 软件开发 用户体验 交互设计 产品管理

软件测试学习笔记丨Charles_Mock实战

测试人

软件测试

2024年前端开发趋势的 6 个框架

伤感汤姆布利柏

AI 绘画平台难开发,难变现?试试 Stable Diffusion API Serverless 版解决方案

阿里巴巴云原生

阿里云 云原生 Stable Diffusion Stable

Nacos 官网重大升级,提供官方发行版下载包,3.0 里程碑版本新特性预告

阿里巴巴云原生

阿里云 微服务 云原生 nacos

使用 AI 构建面向未来的 DevOps

亚马逊云科技 (Amazon Web Services)

人工智能 机器学习

5天!软件开发考试该如何准备?

统信软件

MSE Nacos 配置变更审计平台使用指南

阿里巴巴云原生

阿里云 微服务 云原生 nacos

为什么要用云手机养tiktok账号

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版

释放未来:2024 年区块链应用程序开发

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 公链开发

【快递鸟】智能化之路:即时零售的崛起与线下商超的转型

快递鸟

同城配送

DAPP持币生息项目系统开发|步骤逻辑|源码搭建

l8l259l3365

如何领导规模化敏捷变革?

敏捷开发

敏捷开发 敏捷开发管理 safe 企业转型 规模化敏捷

云原生:改变产品、架构与商业模式的未来引领者

快乐非自愿限量之名

人工智能 架构 云原生 低代码

帮助某百年车企实施 ASPICE 的一点点感悟

QE_LAB

测试 汽车 质量保证 流程规范 ASPICE

Gas Hero Pets NFT 概览与数据分析

Footprint Analytics

区块链 NFT

听GPT 讲Rust Cargo源代码(2)

fliter

当代码遇上玄学……

ZA技术社区

代码 bug 程序员‘ 玄学

Linux线程API使用与分析

不在线第一只蜗牛

Linux 运维 服务器

2024年人工智能产业十大发展趋势

EquatorCoco

人工智能 AI AI技术

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