写点什么

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

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

关注

评论

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

算力平台软件开发|算力平台系统APP开发

系统开发

Java 集合处理/ 空值处理/ 异常处理,使用心得分享!

brother ben

【LeetCode】翻转图像Java题解

Albert

算法 LeetCode 28天写作 2月春节不断更

CPU高速缓存与极性代码设计

华为云开发者联盟

缓存 数据 cpu 存储

新病毒兼容M1芯片,已经感染3万台Mac

Geek_b0cff7

字节码角度分析i++和++i的区别

现实中游走

Java 字节码

流批一体生产应用!Bigo 实时计算平台建设实践

Apache Flink

flink

一个员工的离职成本,很恐怖!

不脱发的程序猿

职场 HR 28天写作 二月春节不断更 员工离职

Windows下JMeter分布式压测环境搭建

行者AI

Jmeter

数据驱动业务增长的底层逻辑2.0

小飞象@木木自由

产品 数据分析 运营 业务增长

C语言重要的知识点

c 考核 重要知识 简单清楚 好看

立足智能化发展,风电能源产业互联网平台加快建设

一只数据鲸鱼

物联网 数据可视化 3D可视化 能源管理 风力发电

华为云PB级数据库GaussDB(for Redis)解析第二期:Redis消息队列Stream的应用探讨

华为云开发者联盟

数据库

Open-Falcon 中的交换机监控

冯骐

运维 监控 网络 交换机 Go 语言

BFF (Backend for frontend)避坑指南

码猿外

架构 微服务 BFF

c语言简介

Geek_f510ff

c C语言

我与声网Agora

june

基于matlab的控制系统与仿真3-根轨迹、bode图、Nyquist图

AXYZdong

matlab 2月春节不断更

python与c++区别之print

沈阳

Mybatis association关联查询

フェイト ゼロ

数据中心架构设计比较

Idea快捷键操作

刘大明

IDEA

java-时间的使用

建安

Java android SpringBoot 2

新一代信息技术赋能山东政务!区块链政务平台解决方案

源中瑞-龙先生

Kafka 是怎么存储的?为什么速度那么快?

码农架构

Java kafka 架构

可能是Java Stream的最佳实践(一)

ES_her0

28天写作

话题讨论 | 如何看待公司发开工红包?

happlyfox

话题讨论 28天写作 2月春节不断更 话题王者 红包

园区网为主的 DNS 架构设计

冯骐

程序员 运维 监控 网络 DNS

2019年度CMMI V2.0性能报告

IPD产品研发管理

产品 项目管理 性能 质量 CMMI

为什么挤破头进大厂,大厂如何设置薪资职级体系?

不脱发的程序猿

HR 校园招聘 28天写作 二月春节不断更 互联网行业薪资

深入理解Deno是如何借助PowerShell进行安装脚本

梁龙先森

大前端 deno shell脚本编写 PowerShell 28天写作

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