写点什么

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

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

关注

评论

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

网络协议之:Domain name service DNS详解

程序那些事

Java Netty 程序那些事 4月月更

融云 Unity SDK 升级,专注游戏场景,更好社交体验

融云 RongCloud

融云猿桌派:听说女生不适合搞 IT,哈?

融云 RongCloud

一键智能Mock,你值得拥有

Liam

前端 前端开发 Postman swagger web前端开发

2021阿里总监最新整理:初级-中级-高级大厂面试真题(附答案解析

爱好编程进阶

Java 面试 后端开发

关于 MySQL 数据库学习的书籍有哪些值得推荐?

程序员万金游

MySQL 数据库 java 日志 MySQL 数据库 java

90天吃透阿里P8推荐的625页Java编程兵书技术实战,直接入职阿里定级P6

爱好编程进阶

Java 面试 后端开发

Docker编排利器DockerCompose,java面试题大汇总

爱好编程进阶

Java 面试 后端开发

FastDFS入门,Java编程笔试题及答案

爱好编程进阶

Java 面试 后端开发

DPDK技术系统学习一(接收,发送,arp,icmp功能测试)

Linux服务器开发

虚拟化 网络协议栈 Linux服务器开发 DPDK C++后台开发

《数字经济全景白皮书》金融科技篇 重磅发布!

易观分析

金融科技 互联网金融

新华三首发400G园区核心交换机,开启园区超宽时代

H3C-Navigator

网络 交换机 智慧园区 网络交换机

持续进击,STI上演极致通缩模型

BlockChain先知

星环科技春季新品发布周,4月19日-23日重磅内容等你来解锁!

星环科技

架构实战营 - 第 6 期 模块三课后作业

乐邦

「架构实战营」

eclipse配置SVN和Maven插件,原生Java开发的路该怎么走

爱好编程进阶

Java 面试 后端开发

「连接」与CRM的「中国式」关系

ToB行业头条

为什么你应该了解 Loggie

网易数帆

Go Kubernetes 云原生 日志 Loggie

Linux 信号(Signal)

mazhen

Linux JVM signal Linux Kenel

百度程序员开发避坑指南(Go语言篇)

百度Geek说

后端

使用 Serverless Devs 插件快速部署前端应用

阿里巴巴云原生

Excel是世界上最危险的软件?

图灵教育

Python 数据分析 Excel

记一次Kafka写入超时问题详细分析

移动云大数据

kafka

阿里云服务网格 ASM 正式发布商业化版本

阿里巴巴云原生

IstioCon 2022,网易数帆六年优化经验即将揭秘

网易数帆

微服务 云原生 istio 服务网格 Service Mesh (ASM)

新一代态势感知系统发布——北望

H3C-Navigator

网络安全 网络 态势感知关联分析、SOC 态势感知 安全运营

百度ToB垂类账号权限平台的设计与实践

百度Geek说

架构 后端

互联网通信安全之 WebRTC 传输安全机制

融云 RongCloud

Scrum基础框架,快速配置Scrum自动化场景

阿里云云效

云计算 阿里云 Scrum 敏捷开发 研发敏捷

黑客是怎么cookie获取?钓鱼?键盘记录?

喀拉峻

网络安全 XSS

阿里云强力贡献:如何让 StarRocks 做到极速数据湖分析

StarRocks

数据库 大数据 StarRocks

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