NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

深入跨国互联网业务场景,看华为云数智融合元数据如何打破“数据墙”

华为云开发者联盟

大数据 数据仓库 华为云 元数据 数智融合

这是我见过最详细的Nginx 内存池分析

Linux服务器开发

nginx 线程池 Linux服务器开发 Linux后台开发 内存池

做开发这么久了,还不会搭建服务器Maven私有仓库?这也太Low了吧

冰河

系统架构 程序开发 程序员进阶 编程基础 Maven仓库

Figma禁封中国企业,下一个会是Postman吗?国产软件势在必行

Liam

后端 Postman Apifox API swagger

OpenHarmony移植:XTS子系统之应用兼容性测试套件

华为云开发者联盟

OpenHarmony 移植 XTS子系统 acts 测试套件

阿里云移动研发平台EMAS:2月产品动态

移动研发平台EMAS

阿里云 程序员 emas 移动端 研发工具

技术平台&应用开发专题月 | 如何保证业务服务稳定运行—用友云原生技术平台高可用能力介绍

用友BIP

用友 用友iuap

如何写好单元测试

TroyLiu

Java 单元测试 解耦 测试原则 好的测试是什么样的

云平台是什么?知名云平台有哪些?

行云管家

云计算 阿里云 云服务 云平台

区块链能否助力版权“突围”?

CECBC

中小型企业CRM系统有哪些好处

低代码小观

销售管理 企业管理 CRM系统 客户关系管理系统 企业管理软件

为什么MySQL主键查询这么快?

蝉沐风

MySQL 索引 主键查询

#yyds内容盘点# 一文带你搞懂Python中变量与常量

程序媛可鸥

Python 人工智能 面试

it运维工程师的工作是做什么的?累吗?

行云管家

运维 服务器 IT IT运维

面向编排的运维在阿里的应用 |阿里巴巴DevOps实践指南

阿里云云效

云计算 阿里云 运维 云原生 部署与维护

拥抱云原生 2.0 时代,Tapdata 入选阿里云首期云原生加速器!

tapdata

数据库 实时数据服务平台

java编程技术FastDFS 安装和配置

编程江湖

推荐算法!基于隐语义模型的协同过滤推荐之商品相似度矩阵

编程江湖

大数据 算法

“元宇宙”与“数字孪生”

CECBC

智慧城市解决方案提供商万达信息加入龙蜥社区

OpenAnolis小助手

开源 智慧城市 万达集团

4 月亚马逊云科技培训与认证课程,精彩不容错过!

亚马逊云科技 (Amazon Web Services)

架构师 培训 认证

# yyds内容盘点 # 一文教会你Python中三种简单函数的使用

程序媛可鸥

Python 人工智能 面试

墨天轮国产数据库沙龙 | 四维纵横姚延栋 :MatrixDB,All-in-One高性能时序数据库

墨天轮

数据库 时序数据库 国产数据库 MatrixDB

WMS是什么?

源字节1号

开源 后端开发

TypeScript 2.0开启空值的严格检查

华为云开发者联盟

typescript js 空指针 ts

HBase海量数据高效入仓解决方案

vivo互联网技术

数据库 HBase

Java有了synchronized,为什么还要提供Lock

华为云开发者联盟

Java synchronized 死锁 lock 同步代码块

建木持续集成平台v2.2.4发布

Jianmu

运维 持续集成 开源社区 自动化平台 建木CI

元宇宙,帮助土耳其奶牛产了更多奶?

CECBC

java培训:使用 Disruptor 做springboot内部消息队列

@零度

JAVA开发 springboot

【CAD】系列Ⅱ

謓泽

3月月更

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