2025 年技术指引:让真实案例和经验为开发者开路 了解详情
写点什么

超媒体就像跳舞

  • 2014-08-01
  • 本文字数:819 字

    阅读完需:约 3 分钟

为了充分发挥超媒体驱动系统的优势,客户端必须服从服务端的领导,并由服务端来驱动客户端的状态。 Darrel Miller 写了一篇博文,并拿跳舞来与超媒体API 做了一次类比。俗话说得好,探戈需要两个人来跳(it takes two to tango)。

Darrel 描述了如何能快速地让两个人合作起舞,最常见的方式便是让两个人一起针对同一首特定的曲子学习同一套精心设计好的舞步序列。基本上通过这种方式,可以让他们在互相协同的情况下各自完成好自己的舞步。但是这种方式的缺点也显而易见,他们只懂一首曲子且与同一个搭档合作时的舞步。一旦发生变化,就会出现问题。一旦换了新的曲子或换了新的搭档,他们在舞技上的不足就会显现出来。

同样地,当我们消费某个 HTTP API 的时候,应用就好比是一支精心设计的舞蹈。客户端和服务端都知道流程该如何进行。当客户端发起某个 HTTP 请求的时候,它知道服务端会如何做出响应。Darrel 指出这就是我们这二十年来如何构建分布式应用的方式。我们首先对服务端暴露的 API 进行学习,然后将某种复杂的交互模式灌输给我们的客户端,从而去达到消费 API 的目的。

为了真正理解如何跳舞,Darrel 指出必须在播放任何音乐的情况下都能跳舞,而这一切只需要学习一套基本的舞蹈原语就可以完成。当一对夫妇跳舞的时候,一个领舞而另一个跟随引导也是非常重要的。一个起好选择舞蹈原语序列的领导作用,并使用手势和体位来与他的舞伴交流后续的舞步。这中间没有事先确定且尽心设计的序列动作,唯一的约束就是舞蹈的风格。

相应地,对于某个实现了相同原则的 HTTP API,客户端无须再保持对状态的跟踪,它只需要通过理解接收到的消息并信任服务端所给出的必要引导,从而可以简单地跟随服务端的领导。没有影响到资源的那些新的或变化的业务需求将不会对客户端造成影响。根据 Darrel 的判断,当你的 API 具有很多不同客户端的时候,这将是一个非常关键的优势。

Darrel 还在他的 Github 仓库上发布了一个完整的 WPF 示例。

查看英文原文: Hypermedia is like Dancing

2014-08-01 00:091513
用户头像

发布了 52 篇内容, 共 22.7 次阅读, 收获喜欢 5 次。

关注

评论

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

2024西安国际风机展|2024中国工业通风设备展会

秋硕展览

2024年中国(南京)国际生活用纸及造纸设备展会

秋硕展览

Zebec Protocol 薪酬支付工具 WageLink 上线,掀新一轮薪酬支付浪潮

大瞿科技

ARTS-WEEK10(23.10.16-23.10.22)

Echo!!!

selenium基础语法详解。

百度搜索:蓝易云

Java Python Web API selenium

MySQL常用图形管理工具

小齐写代码

用友x德勤 | 引领全球化潮流,用友与德勤携手助力中企出海

用友BIP

Python 函数:定义、调用、参数、递归和 Lambda 函数详解

小万哥

Python 程序员 软件 后端 开发

Minitab Express for Mac(数据分析统计软件)v1.5.0激活版

iMac小白

Minitab Express for Mac Minitab Express下载 Minitab Express破解版

Linux的挂载介绍

芯动大师

如何发现更多比特币大户钱包地址?以bitget 钱包为例

威廉META

用Python实现微信多开,1行代码免费用

程序员晚枫

Python 微信

Spring Boot是什么?它的优点是什么?

百度搜索:蓝易云

云计算 spring Linux 运维 Spring Boot

你真的了解你的团队吗? ONA告诉你真相

用友BIP

人才发展

MATLAB R2023b for Mac中文激活版(数值计算和科学编程软件)

iMac小白

MATLAB破解版 MATLAB R2023b MATLAB R2023b下载 MATLAB R2023b破解版

草图大师SketchUp Pro 2023最新版激活安装教程

iMac小白

SketchUp Pro 2023下载 SketchUp Pro 2023破解 SketchUp Pro 2023 mac

寓言灼真知——比小说更好看的理财故事书

少油少糖八分饱

赚钱 理财 日积月累 致富 寓言

文心一言 VS 讯飞星火 VS chatgpt (118)-- 算法导论10.3 3题

福大大架构师每日一题

福大大架构师每日一题

如何发现更多比特币大户钱包地址?以bitget 钱包为例

鳄鱼视界

硬件信息查看软件 EtreCheckpro免激活最新版

胖墩儿不胖y

Mac软件 系统维护软件

不愧是疑问解决神器(二)!你强任你强👍👍👍

Immerse

JavaScript

Ableton Live 11 Suite for mac(音乐制作软件) v11.3.11永久激活版

mac

Ableton Live 11 Suite 音乐制作软件 苹果mac Windows软件

Programming abstractions in C阅读笔记:p181-p183

codists

新华网专访王文京:“数据驱动 智能运营”是企业数智化的全新阶段

用友BIP

数据驱动

Zebec Protocol 薪酬支付工具 WageLink 上线,掀新一轮薪酬支付浪潮

西柚子

从基础到实践,回顾Elasticsearch 向量检索发展史

华为云开发者联盟

人工智能 深度学习 华为云 华为云开发者联盟

超媒体就像跳舞_REST_Jan Stenberg_InfoQ精选文章