写点什么

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

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

关注

评论

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

LED透明屏和LED玻璃屏的区别

Dylan

分辨率 视频 图像 屏幕亮度 LED

GPT-4满分通过MIT本科数学考试!这套提示词火了

Openlab_cosmoplat

算法 ChatGPT

如何在 Apifox 中正确指定 query 参数?

Apifox

Java 程序员 Apifox API 接口工具

华为云邓明昆:云原生时代,以开源赋能数字化转型

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

openGemini:顺势而动,蓄势而发

华为云开源

数据库 开源

NFTScan | 06.12~06.18 NFT 市场热点汇总

NFT Research

热点 NFT\

华为云苏光牛:坚持产品能力的升级,做金融数字化的坚实数据底座

华为云开发者联盟

华为云 华为云开发者联盟 企业号 6 月 PK 榜

SCADA系统架构的类型

2D3D前端可视化开发

物联网 web组态 工业自动化 SCADA 工业组态

OpenHarmony社区运营报告(2023年5月)

OpenHarmony开发者

OpenHarmony

国外服务器助力你的网站实现全球业务拓展!

一只扑棱蛾子

国外服务器

用简单的描述带你理解运算放大器

矜辰所致

运算放大器 6 月 优质更文活动

ModelBox实战开发:RK3568实现摄像头虚拟背景

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 6 月 PK 榜

数字化转型的“整体规划”有多重要?

优秀

低代码 数字化转型 数字化

华为云黄瑾:做强坚实数据底座,GaussDB与产业携手共进

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

大会预告 | 2023云边协同大会将于6月30日在京召开

信通院IOMM数字化转型团队

边缘计算 AIOT 分布式云 云边协同

中国移动云能力中心捐赠 secScanner 和 ksPack 项目,助力openEuler社区繁荣发展

openEuler

Linux 操作系统 openEuler 移动云 开放原子基金会

快速掌握 Axios 请求库的基本用法

Liam

程序员 开发 HTTP API axios

数字底座的连接集成加速数智企业互联互通

用友BIP

数智底座 数字底座 连接集成

优化开发工作流的三大实用技巧,助力效率提升

龙智—DevSecOps解决方案

版本控制 版本管理

华为云邓明昆:云原生时代,以开源赋能数字化转型

华为云开源

开源 云原生 数字化

四大技巧,教你如何加速手动UI测试

龙智—DevSecOps解决方案

UI测试 用户界面测试

【零售电商系列】走进亚马逊之三方物流与售后

小诚信驿站

6 月 优质更文活动

openEuler+Linaro合作成果展示|2023开放原子全球开源峰会

openEuler

Linux 开源 操作系统 openEuler linaro

API网关-APISIX简介

天翼云开发者社区

云原生 API

冠军!天翼云在国际AI顶会大模型挑战赛中拔得头筹!

天翼云开发者社区

人工智能

用好支付宝小程序云云开发,告别繁琐的小程序开发流程

TRaaS

小程序 支付宝小程序

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