写点什么

HATEOAS 作为领域特定协议描述的引擎

  • 2009-06-09
  • 本文字数:783 字

    阅读完需:约 3 分钟

要解释清楚 HATEOAS,可是出了名的难缠,为了更为容易的解释它,Nick Gall探讨了 将它作为领域特定协议描述来进行表达这一观点。根据他的说法,HATEOAS 从传统上被描述为:

…着重强调 HATEOAS 要求每个服务器响应都必须不仅包含被请求的数据 - 还必须包含控制信息 (以特殊标记的 URL 形式) 来描述下一个被允许的与服务器交互的集合。正是这一附加的信息 (最小的情况下仅仅是对于更多数据的链接) 将普通的媒体变为了超媒体。

Nick 解释了他是如何以标识–Identifiers (Uri),格式 --Formats (HTML),和协议–Protocols (HTTP) 这种 (IF and P) 的方式来看待 Web 接口 (以及相应的 RESTful 接口) 的。根据他的说法,尽管使用 HATEOAS 的 RESTful 应用可以被看作这三个部件 (IF and P) 的总和,但在理解它的时候将超媒体作为一个领域特定协议描述来思考可能更为合适。他指出了 Jim Webber 的“ Rest 巴克”案例 / 演示,在其中叙述了用超媒体来做协议描述

乍一看这可能很不直观,因为我之前说在万维网里 HTTP 是协议而 HTML 是格式。但是 URL,HTML,HTTP 只是描述领域特定标识,格式,和协议的一般性描述语言。因此,可以把特定的 HTML 页面组织成的 web 想像成一个领域特定协议。

将“超媒体描述协议”这一观念与 WS-BPEL 1.1 规范 WADL 进行比较是不可避免的。他表示:

其基本的差别在于 WS-BPEL 是基于一次性地以带外的方式 (out of band) 预先将整个静态协议和盘托出的概念。而 HATEOAS 是基于逐步进展的描述这一观念,我认为一个更好的术语应当是即时协议描述 (Just In Time)。[…] 我可以说“每个服务器渐进的响应自描述了当前的协议。”

即时协议描述相对于预先描述有利有弊,表现在工具支持以及这些接口的可发现性上面。“超媒体描述协议”是否是考虑HATEOAS 观念的新思路呢,并且它是否更易于理解呢?

查看英文原文: HATEOAS as an engine for domain specific protocol-description

2009-06-09 09:433095
用户头像

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

关注

评论

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

GitHub开源:100美元自制激光雷达

不脱发的程序猿

GitHub 开源 DIY 4月日更 激光雷达

三色标记原理,我给应聘者问懵了...

华为云开发者联盟

Java 节点 三色标记 SATB算法 回收器

我很久没写代码了,但我是个好架构师

四猿外

Java 程序员 系统架构 架构师 代码

芯片设计软件上云新思路!看珂晶达如何高效拓宽市场 | 精选案例

亚马逊云科技 (Amazon Web Services)

重磅更新!运维工程师打怪升级进阶之路 3.0(体系化带你全面从入门到企业实战)

民工哥

Linux 后端 linux运维 运维工程师 linux学习

NoCode 实战 | 想要开发在线选课系统?何必那样大费周章!

亚马逊云科技 (Amazon Web Services)

多源数据即席查询Trino(Presto)引擎剖析

小舰

4月日更

低代码:正在改变软件的开发方式

华为云开发者联盟

软件开发 低代码 低代码平台 华为云应用魔方 AppCube

阿里员工:最惨P7,33岁才28K,感觉没有前途了。网友调侃:最美逆行者

程序员生活志

神级Android进阶笔记!一次关于JVM的面试经历,建议收藏

欢喜学安卓

android 程序员 面试 移动开发

搭载自研处理器 Amazon Graviton2 的 Amazon EC2 X2gd 已全面可用 | 新服务上线

亚马逊云科技 (Amazon Web Services)

使用 Amazon SageMaker 特征存放区存储、发现和共享机器学习特性!

亚马逊云科技 (Amazon Web Services)

架构实战营 - 模块 2- 微信朋友圈高性能复杂度分析

吴建中

架构实战营

全程干货!拍乐云受邀LiveVideoStackCon,首席科学家分享拥塞控制最佳实践

拍乐云Pano

我们携手东软集团,助力智能汽车“乘云转型达四海” | 精选案例

亚马逊云科技 (Amazon Web Services)

游戏开发者福音!我们和 TapTap 将为您提供全套的发行服务!

亚马逊云科技 (Amazon Web Services)

SpringBoot极简集成Shiro

Java小咖秀

spring springboot shiro

面试加分项!为了跳槽强刷1000道Android真题,附小技巧

欢喜学安卓

android 程序员 面试 移动开发

【签约计划】行业分析能力考核成绩公布

InfoQ写作社区官方

签约计划 热门活动

【LeetCode】实现 strStr()Java题解

Albert

算法 LeetCode 4月日更

架构实战营 - 模块 2- 总结

吴建中

架构实战营

Linux tree命令

一个大红包

Linux linux命令 4月日更

华为云PB级数据库GaussDB(for Redis)揭秘第八期:用高斯 Redis 进行计数

华为云开发者联盟

redis GaussDB(for Redis) 计数器 计数

计算机原理学习笔记Day11

穿过生命散发芬芳

计算机原理 4月日更

浪潮云洲链全面接入“星火·链网”

工业互联网

专家呼吁:保护肾脏,从关注酸性尿开始

E科讯

行动起来!为迁移到自己的证书颁发机构做好准备!

亚马逊云科技 (Amazon Web Services)

搭建亿级时间线数据的监控系统,我有绝招!

华为云开发者联盟

Grafana 监控系统 GaussDB(for Influx) 华为云数据库 时间线

聪明人的训练(二十)

Changing Lin

4月日更

抢购倒计时自定义控件的实现与优化

vivo互联网技术

动画 安卓 自定义控件 倒计时

MySQL常用引擎及优缺点

Sakura

4月日更

HATEOAS作为领域特定协议描述的引擎_SOA_Dilip Krishnan_InfoQ精选文章