BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Spring对基于REST的Web Services增加HATEOAS支持

| 作者 Jan Stenberg 关注 37 他的粉丝 ,译者 廖煜嵘 关注 0 他的粉丝 发布于 2013年6月10日. 估计阅读时间: 3 分钟 | ArchSummit北京2018 共同探讨机器学习、信息安全、微服务治理的关键点

Spring Framework目前正在为超文本驱动的REST web services添加HATEOAS(超媒体即应用状态引擎)支持。HATEOAS主要专注于以类库的方式,为简化超媒体链接的创建,以及在和Spring(特别是Spring MVC)一起使用时对REST资源表述进行装配提供API。

XML和 JSON

该类库提供了一系列类型去简化XML和JSON的操作。

链接

Spring HATEOAS类库提供了若干个类参与链接(links)和关联(relations)相关工作。

类用于创建和保持链接,它采用Atom的链接定义方式,通过relhref属性去描述一个链接。当使用XML时,链接将在Atom命名空间中呈现。

在创建URI字符串时,一个常见的​​问题是在代码中到处充斥着重复的字符串常量。ControllerLinkBuilder类解决了这个问题,它从当前请求的URI中提取基础URI,然后将Controller类中的根路径映射添加到对应的资源中,从而组合成一个完整的URI。

当资源以实体类的方式直接表述时,Spring HATEOAS提供了类来为这些实体类型创建链接,使其指向一个集合类资源或单一的资源。

当使用超媒体时,查找某个特定关联的对应链接是很常见的。Spring HATEOAS对此提供了LinkDiscoverer类进行支持。

资源

Spring HATEOAS包含了一个基类ResourceSupport,当需要创建资源类时可以继承这个类。举个例子,它对链接提供了支持。

另一个基类ResourceAssemblerSupport有助于减少在实体和资源之间进行映射和为资源增加链接时所需的代码量。该类还能够建立单一的资源或资源集合。

Geraint Jones基于一个简单的场景编写了一个使用Spring HATEOAS的例子

在JAX 2013大会上,Martin Lippert的“使用Spring和JavaScript的当代架构”的演讲中也包含了对Spring HATEOAS的介绍。

Spring HATEOAS 类库目前处于0.5版本的阶段,并且正在为 0.6版本继续努力着。

查看英文原文:Spring adds HATEOAS Support to REST Based Web Services


感谢赵震一对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT