QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

评论

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

Angular管道PIPE介绍

devpoint

angular.js angular 6月日更

crypto/md5

康家沟偶像天团王大锤

三星T5 格式化成APFS

SamGo

学习 硬件产品

【Flutter 专题】99 初识 EventBus

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

Golang生成随机字符串的八种方式与性能测试

张俭

Performance Go 语言

JAVA面向对象(七)--类的属性和方法详讲

加百利

Java 6月日更

新一代数仓架构-Snowflake弹性数仓

一弦思华年

大数据 数据湖 云原生 OLAP 数仓

Angular模板简介

devpoint

angular.js angular 6月日更

如何使用EasyRecovery巧妙恢复被误删的办公文档?

淋雨

数据恢复 文件恢复 Easyrecovery破解 免费恢复软件

揭秘MySQL的主从同步实现方案

架构精进之路

MySQL 6月日更

流式基础设施--云基础设施的未来

俞凡

云计算 架构

源码分析--golang读写锁

en

kubelet分析-csi driver注册源码分析

良凯尔

源码 Kubernetes kubelet CSI Kubernetes Plugin

《Software Engineering at Google》免费开放

俞凡

c++ 软件工程 Google 大厂实践

跨越式成长 - 高效的学习方法

Ryan Zheng

自媒体从业者如何选择合适的公司

石头IT视角

Linux之pwd命令

入门小站

Linux

大学生如何让更好的入门计算机?

Bob

入门 话题讨论 话题 大学生

架构实战营模块六作业

竹林七贤

低代码开发简史

俞凡

架构

DevOps的未来

俞凡

DevOps

六、拆分电商系统为微服务

菠萝吹雪—Code

架构实战营

密码你真的了解吗

卢卡多多

密码学 6月日更

架构实战训练营 - 模块六课后作业

Johnny

架构实战营

【Vue2.x 源码学习】第十九篇 - 根据 vnode 创建真实节点

Brave

源码 vue2 6月日更

Python——计数器(Counter)

在即

6月日更

计算机系统性能评价

若尘

性能 计算机组成原理 6月日更

智能无线接入网的崛起

俞凡

AI OpenRAN

Google大规模监控系统--Monarch

俞凡

架构 分布式 大厂实践

Anaconda 如何安装 BeautifulSoup 环境

Qien Z.

6月日更

【21-11】PowerShell 特殊变量

耳东@Erdong

PowerShell 6月日更

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