开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

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

  • 2013-06-09
  • 本文字数:873 字

    阅读完需:约 3 分钟

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

XML 和 JSON

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

链接

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

类用于创建和保持链接,它采用 Atom 的链接定义方式,通过 _rel_ 和 _href_ 属性去描述一个链接。当使用 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 )关注我们,并与我们的编辑和其他读者朋友交流。

2013-06-09 07:495301
用户头像

发布了 81 篇内容, 共 25.0 次阅读, 收获喜欢 5 次。

关注

评论

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

智能连接,助力餐饮品牌实现商城订单自动同步

聚道云软件连接器

案例分享

Acrobat Pro DC 2023 for Mac(PDF编辑器) 2023.006.20380永久激活版

mac

苹果mac Windows软件 PDF编辑和管理软件 Acrobat Pro DC

Archicad 27 for Mac(3D建模软件)v27.1.1 (4030)激活版

iMac小白

Navicat Charts Viewer for Mac(Navicat图表查看器)v1.2.14激活版

iMac小白

Boxy SVG for Mac(矢量图编辑器)v4.20.0免激活版

iMac小白

MatrixOne 完成与飞腾处理器的兼容互认

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne 超融合数据库

MO 2023 年度回顾

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne 超融合数据库

每日一题:LeetCode-695. 岛屿的最大面积

Geek_4z9ami

Go 面试 算法 矩阵 LeetCode

知识图谱企业图谱怎么做

悦数图数据库

知识图谱

前后端开发的可视化编辑器

互联网工科生

软件开发 低代码 JNPF 前后端软件

聚道云软件连接器带给服装行业客户的业务革新

聚道云软件连接器

Navicat Data Modeler Ess for Mac v3.3.14中文激活版

iMac小白

利用虚拟线程重写自定义异步功能

FunTester

一文读懂Kubernetes部署策略

高端章鱼哥

Kubernetes 部署

手把手入门 MO | 如何使用 DolphinScheduler 连接 MatrixOne

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne 超融合数据库

PHP服务器监控与维护:确保长期稳定运行的方法

一只扑棱蛾子

服务器 PHP服务器

手撕Vuex-vuex实现原理分析

快乐非自愿限量之名

架构 Vue

自编码器AE全方位探析:构建、训练、推理与多平台部署

不在线第一只蜗牛

代码 模型优化 AE 自编码

AI原生应用开发“三板斧”亮相WAVE SUMMIT+2023

飞桨PaddlePaddle

飞桨 文心一言 文心大模型

软件测试/测试开发丨软件测试基础概念 学习笔记

测试人

软件测试 测试开发

MatrixOne 1.1.0 Release

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne 超融合数据库

软件开发外包风险如何避免,参考如下安全低风险的开发合作模式

软件开发-梦幻运营部

拼多多商品详情数据接口(Pinduoduo.item_get)丨拼多多API接口

tbapi

拼多多API接口 拼多多商品详情数据接口 拼多多商品API接口 拼多多优惠券接口 拼多多到手价接口

CopyQueue for Mac(管理文件传输工具)v3.1免激活版

iMac小白

科兴未来|中国北京 · HICOOL 2024全球创业大赛招募启动

科兴未来News

Navicat Charts Creator for Mac(Navicat图表创建器)v1.2.14激活版

iMac小白

Spring对基于REST的Web Services增加HATEOAS支持_SOA_Jan Stenberg_InfoQ精选文章