NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Restfulie 作者 Guilherme Silveira 专访

  • 2009-12-16
  • 本文字数:2217 字

    阅读完需:约 7 分钟

在十一月份,我们报道了Restfulie 项目的发布,该框架用于创建对超媒体敏感的客户端和服务。最近, Guilherme Silviera 将自己的 Restfulie 项目和 RESTeasy 进行了比较,后者是一个 JAX-RS 的实现,并质疑 RESTeasy(甚至于 JAX-RS)是否是构建 RESTful 应用的正确基础。这在社区里引起了一些讨论,因此,我们找机会采访了 Guilherme,借此来搞清楚事情的来龙去脉。

InfoQ:Guilherme 你好。你能先给我们介绍一下是什么原因让你决定开发 restfulie 的?

Guilherme Jim Webber , Savas Parastatidis Ian Robinson 将会在 2010 年初出版一本关于使用 web 作为基础结构的书, 我读了之后,终于明白了超媒体在 REST 场景中发挥作用的方式。回想到 Roy 和 Subbu Allamaraju 的一些作品和 JAX-RS 的实现,我们意识到过于强调了 Web 的 HTTP 和 URI 部分,而正如 Richardson 在 qcon 2008 上所指出的,我们对它的超媒体天性却重视不足。所以我们创建了 Restfulie,将其作为这样一种工具:首先关注超媒体方面,其次才是 HTTP 和 URI。

InfoQ:现在 Restfulie 社区有多大规模?

Guilherme:Restfulie 活跃的时间并不长,因此社区现在还比较小:但是它已经获得了我喜欢的正面评价。我们对于 Ruby 的贡献已经发布了并且正在向一些用户征集反馈。Jim Webber 在理论和现实问题上给予了我们帮助。 Jose Valim 和 Yehuda Katz ,都是 rails 3 的幕后工作者之一,也给了一些反馈让我们能够持续改进。在 ruby 社区享有盛名的 Brian Guthrie Fabio Akita ,也贡献了代码和 DSL 的想法。

InfoQ:你对于标准怎么想,既然你的帖子是的的确确地在对比 restfulie 和 JAX-RS?

Guilherme:这是个很好的问题。想起成功发布的 JSR,我们总会想到 Hibernate/JPA。JCP 在 ORM 方面做的首次尝试 其实是 JDO,而 JDO 从来没有象 Hibernate 那样成功。原因有很多。在我看来,导致这发生的一个主要原因是自顶向下的工作方式,JDO 试图制定一 个新的 JSR,但缺少一个经过验证的解决方案 API 作为指导。当 Gavin King 帮助领导 JSR220 的时候,他们推出了 JPA1。JPA 2 进一步发掘了 Hibernate 被验证的功能,特别是 Criteria API。也就是必须要回答一个问题:开发者们会喜欢通过 String 来使用 Hibernate 风格的 Criteria,还是愿意使用新创建的 StaticMetaModel 方式来保证类型安全?

于是,我们已经看到了由委员会领导的标准技术和其他从成功 API 中提炼出想法引入到 JSR 的技术(如 Hibernate/JPA 和 Seam/CDI(原来 叫 WebBeans))的不同结局。标准的确很重要,但是现在是该我们从错误里学习的时候了。 在 JPA 和 CDI 的例子里,JBoss 在它现有经验之上成功的把 API 整合进了 JSR。 InfoQ 刚刚发表的 Rod Johnson 的演讲也强调了这一点:“Rod Johnson…介绍了从它的失败中学到的教训,就像委员会领导的标准…以后要避免再犯这样的错误”。

在收到帖子的反馈之后,对 Restfulie 的讨论,Jim Webber 是第一个在自己 blog 中发表看法的, “这不是RESTEasy (或Jersey, 或 CXF) 的错,有问题的是委员会驱动流程,在那里,怀着不同目的以及对REST 理解水平不同的人们在一起召开会议,得出了最低共性的结果,这就是JAX-RS”。 REST 领域必须被更谨慎地思考。JAX-RS 规范充分肯定了HTTP 和URI 的价值,但是对超媒体约束却很大程度上有所保留。每个其他的JAX-RS 实 现几乎都以自己期望的方式对超媒体相关的所有事情进行处理,并且正如规范所“强迫”的,他们的重点放在了对HTTP+URI 的支持上。就像Roy 指出 的,HTTP 是我们的API,所以也许一个直白的说法是,除了使用它,就不应该有其他标准api 的存在。

InfoQ:你考虑过参与 JAX-RS 项目中的一个而不是开发一个单独的 RESTful 框架吗?

Guilherme:Restfulie 产生于 Rails 环境,所以在构想阶段并没有真正考虑是这一点。由于在培训公司工作,我们深知对于学习者从一开始就接触最重要的思想是非常重要的,因为对 一个技术的第一印象将会影响使用它的方式。我们并没有按照文档遵循 JAR-RS(及其实现) 的标准路径:URI+HTTP,很久之后才是超媒体,最后是客 户端支持,这是因为我们期望我们能够让他们更好的思考超媒体的重要性以及 HTTP 和 URI。

首先关注超媒体,URI 和 HTTP 的需要会更自然地浮现:我们从客户得到的反馈是他们在用 REST 的超媒体方面,所以看起来客户们理解并且很好地利用了超媒体方法。Java 版以及它和 JAX-RS 标准的联系将会在接下来的问题中解决。

InfoQ:restfulie 的下一步要做什么?

Guilherme:我们刚刚发布了了一个 Java 版本(vraptor 和 hibernate),主要关注超媒体约束。当 vraptor3 出来的时候,我们不能确定它是否应该是一个 JAX-RS 的实现。标准很重要,给予市场新想 法的其他框架也同样重要。这也是我为什么认为 Restfulie 和 vraptor 适合当下。这将来也许会改变,如果我们发现真的有一个更好的方式来创建系 统:该 java 版本也会通过一些实现进一步强化,只要它没有放弃对超媒体的关注。

还有一些 Rails 2 版本重构,Rails 3 和.NET 的实现,对很多 http header 和 response 代码的客户端支持(Server 端已经支持了)。Restfulie 的客户端部分是最让我惊奇的,它有很多非常好的默认动 态绑定 URI 以及状态转换的相关特性,而不只是“http 之上的序列化工具”(也就是 jaxb 和 httpclient 等)。

InfoQ:感谢您花时间来回答我们的问题。

Guilherme:不用谢。

查看英文原文: http://www.infoq.com/news/2009/12/restfulie-interview

2009-12-16 21:251056
用户头像

发布了 42 篇内容, 共 17.1 次阅读, 收获喜欢 4 次。

关注

评论

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

重磅!百度知识增强大语言模型关键技术荣获“2023世界互联网大会领先科技奖”

飞桨PaddlePaddle

百度 互联网大会 大语言模型

《用友企业绩效管理白皮书》要点解读之整合计划

用友BIP

企业绩效管理

另辟蹊径者 PoseiSwap:背靠潜力叙事,构建 DeFi 理想国

大瞿科技

PostgreSQL 技术内幕(十一)位图扫描

酷克数据HashData

报名开启!飞桨AI for Science公开课与共创计划邀您来学,探索AI与科学的融合

飞桨PaddlePaddle

人工智能 AI for Science

区块链技术投入公链开发,涨知识了 公链开发团队

西安链酷科技

公链开发 公链团队

DBeaver Ultimate注册激活版下载(数据库管理软件)

影影绰绰一往直前

DBeaver下载 DBeaver注册版 DBeaver激活版

dapp软件定制开发公司 DApp开发步骤全解析

西安链酷科技

DAPP系统开发 dapp开发

Dapp技术开发到底需要花多少钱?

西安链酷科技

区块链 dapp开发

All in数字化!这场大会重新定义建筑行业人才模式

用友BIP

人力资源

IDO私募预售平台软件系统开发

西安链酷科技

IDO代币预售

区块链底层公链开发 公链开发团队

西安链酷科技

公链开发 节点搭建

公链开发技术团队 如何设计一个稳定、高效的公链系统架构?

西安链酷科技

DAPP系统开发 区块链浏览器开发 区块链技术公司

链游开发外包公司

西安链酷科技

区块链游戏 gamefi 链游开发 游戏链改

适用于即席查询(Ad-Hoc)的OLAP引擎

Western Panda

数据库 大数据 开源 数据分析 OLAP

新华冶金∣打造业财深度一体化运营模式

用友BIP

IDO预售系统开发:构建去中心化众筹平台的技术实践

西安链酷科技

IDO代币预售

模拟ASP.NET Core MVC设计与实现

EquatorCoco

ASP.NET Core 框架 教程分享

BI 数据可视化平台建设(1)—交叉表组件演变实战

vivo互联网技术

架构演进 BI可视化 表格组件 交叉表

链游开发DAPP智能合约开发搭建

西安链酷科技

DAPP系统开发

开发一个dapp需要多少钱?具体设计那些费用?

西安链酷科技

DAPP系统开发

昇腾CANN DVPP硬件加速训练数据预处理,友好解决Host CPU预处理瓶

华为云开发者联盟

人工智能 华为云 昇腾CANN 华为云开发者联盟

搭建一个dapp钱包要多少钱

西安链酷科技

软件开发 区块链系统开发 区块链软件搭建

对话在行人|安恒信息:通过企业数智化建设实现主营业务100%增长

用友BIP

数智化领先实践

KeyShot Pro 2023中文特别版下载(3D渲染和动画制作)

影影绰绰一往直前

KeyShot Pro2023 KeyShot Pro下载 KeyShot Pro破解版

Capture One 23 Enterprise for Mac(RAW图像编辑软件) 企业版 16.3.1.23永久激活版

mac

windows 图像处理软件 苹果mac Capture One 23

王文京:中国智能会计将引领全球会计创新

用友BIP

智能会计

用户信息授权报错“无效的AppID参数”问题排查解决过程

盐焗代码虾

Java 支付宝 经验分享 支付宝报错 排查思路

小红书万亿级社交网络关系下的图存储系统的架构设计与实践

JackJiang

网络编程 即时通讯 IM

Dapp开发的技术原理和设计方案

西安链酷科技

DAPP系统开发

Restfulie作者Guilherme Silveira专访_Java_Mark Little_InfoQ精选文章