写点什么

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

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

关注

评论

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

HummerRisk 使用教程:镜像检测

HummerCloud

镜像安全 云原生安全

【原理揭秘】Vite 是怎么兼容老旧浏览器的?你以为仅仅依靠 Babel?

京东科技开发者

前端 企业号 4 月 PK 榜

不愧是腾讯架构师珍藏的“redis深度笔记(全彩版)”这细节讲解,神了

架构师之道

redis 编程

超实用VS Code for Windows快捷键

SEAL安全

vscode 企业号 4 月 PK 榜

SSD 存储领域厂商大普微加入龙蜥社区,完成与龙蜥操作系统适配

OpenAnolis小助手

开源 操作系统 龙蜥社区 CLA 大普微

【ChatGPT系列话题】金融行业大语言模型应用落地

易观分析

人工智能 金融 模型

「硬核实操」如何拥有一个自己的数字人模型

京东科技开发者

京东云 数字人 企业号 4 月 PK 榜

前端里那些你不知道的事儿之 【window.onload】

京东科技开发者

前端 京东云 京东技术 京东科技 企业号 4 月 PK 榜

自动化测试理解

测试 自动化测试

你kin你擦!阿里终于肯把内部高并发编程高阶笔记开源出来了

Java你猿哥

Java nginx 高并发 SpringCloud 面经

如何打造企业专属A/B平台?火山引擎DataTester开放平台技术揭秘

字节跳动数据平台

大数据 AB testing实战 开放平台 企业号 4 月 PK 榜 企业增长

如何选择合适的云数据库架构与规格

NineData

数据库 阿里云 AWS RDS 数据库架构设计

机器学习实战系列[一]:工业蒸汽量预测(最新版本下篇)含特征优化模型融合等

汀丶人工智能

人工智能 数据挖掘 机器学习 LightGBM

Low-Code,一定“low”吗?

京东科技开发者

低代码 京东云 京东技术 京东科技 企业号 4 月 PK 榜

又是一季金三银四,Spring之AOP知识要点总结

Java你猿哥

spring Spring Boot ssm aop

“ONE”有引力,4月21日见!

博睿数据

智能运维 博睿数据 发布会 Bonree ONE

​openEuler 23.03 正式发布,聚集社区创新力量,增强基础技术能力,协同全场景创新

openEuler

Linux 运维 操作系统 openEuler 桌面开发

selenium源码通读·1 | 源码目录

Python 源码 自动化测试 selenium

既然有了MySQL,为什么还要有MongoDB

Java你猿哥

Java MySQL 数据库 mongodb Java工程师

想拿到10k-40k的offer,这些技能必不可少!作为程序员的你了解吗

Java你猿哥

Java 面试 架构师 面经 Java工程师

2023年金三银四牛客网最新版大厂Java八股文面试题总结(覆盖所有面试题考点)

采菊东篱下

Java 编程

PyTorch深度学习实战 | 预测工资——线性回归

TiAmo

深度学习 线性回归 PyTorch 梯度下降法

慕了!17年阿里架构师把Spring Boot的精髓都总结出来了

Java你猿哥

Java spring Spring Boot Spring MVC Java工程师

户外LED显示屏对恶劣环境的防护措施!

Dylan

LED显示屏 全彩LED显示屏 户外LED显示屏

我没能实现始终在一个线程上运行 task

newbe36524

C#

Go flag 标准库源码解读

江湖十年

后端 命令行 Go 语言

Hive 和 Spark 分区策略剖析

vivo互联网技术

spark hive

集成华为运动健康服务干货总览

HarmonyOS SDK

HMS Core

阿里架构师花近十年时间整理出来的Java核心知识pdf(Java岗)

Java你猿哥

Java java面试 Java工程师 Java面经 春招

AI大模型已经出现不可预测的能力

Baihai IDP

人工智能 深度学习 NLP 大模型 ChatGPT 企业号 4 月 PK 榜

DAMS大会 | 博睿数据分享《一体化智能可观测平台建设之路》

博睿数据

可观测性 智能运维 博睿数据 Bonree ONE

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