写点什么

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

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

关注

评论

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

2 期架构师训练营 - 第九周作业与总结

云飞扬

架构师训练营第2期

【Python】给PDF添加水印

AXYZdong

Python 2月春节不断更

图文详解网络基础知识

2 期架构师训练营 - 第十周作业与总结

云飞扬

架构师训练营第2期

Java函数式编程Stream.collect()为什么这么受欢迎?

李尚智

Java 架构 函数式编程

2 期架构师训练营 - 第七周作业与总结

云飞扬

架构师训练营第2期

协会组织如何实现数字化落地应用?

boshi

数字化转型 七日更

日记 2021年2月7日(周日)

Changing Lin

个人感悟 2月春节不断更

阅读笔记:Python A-Z 技巧

小匚

Python 读书笔记 日常思考

容器 & 服务:Jenkins本地及docker安装部署

程序员架构进阶

容器 jenkins 七日更 28天写作 2月春节不断更

大作业(二)-知识点

hunk

架构师训练营第2期

2 期架构师训练营 - 第八周作业与总结

云飞扬

架构师训练营第2期

第十一周 安全稳定 作业 「架构师训练营 3 期」

胡云飞

Linux Lab 进阶: Rootfs 文件系统 &Linux 与 Uboot 调试

贾献华

Linux Linux Kenel rootfs uboot usb

2 期架构师训练营 - 第六周作业与总结

云飞扬

架构师训练营第2期

最新版gradle安装使用简介

程序那些事

Gradle 程序那些事 构建工具 build 打包工具

5G花式过年指南

脑极体

尝试从用户的角度思考(PO的姿势)

Bruce Talk

Scrum 敏捷开发 Agile Product Owner

第四章学习总结

Kalman

产品经理 产品经理训练

驱动力读书笔记之五

张老蔫

28天写作

sql注入竟然把我们的系统搞挂了,怎么办?

苏三说技术

java安全

【LeetCode】盒子中小球的最大数量

Albert

算法 LeetCode 2月春节不断更

第四章作业

Kalman

产品经理 产品经理训练营

OpenCV--平移与旋转

IT蜗壳-Tango

七日更 2月春节不断更

物流系统抢单简单设计

DL

产品经理训练营--第四周作业

月亮 😝

白话Mysql的锁和事务隔离级别!死锁、间隙锁你都知道吗?

Java鱼仔

MySQL 高可用

2 期架构师训练营 - 第四周作业与总结

云飞扬

架构师训练营第2期

《未来呼啸而来》- 技术改变生活

石云升

2月春节不断更 技术改变生活 未来呼啸而来

浪潮云洲:从工业互联网实践想开去

工业互联网

架构师训练营 4 期 第6周

引花眠

架构师训练营 4 期

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