50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

超媒体就像跳舞

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

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

关注

评论

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

Go Switch - Go 中使用 Switch 的六种方式

baiyutang

golang 10月月更

python 头等对象之一,python 函数那些不一般的用法

梦想橡皮擦

10月月更

区块链挖矿系统开发公司(现成源码)

Prometheus 查询操作符(一) 二进制操作符

耳东@Erdong

Prometheus 10月月更

IPFS矿机分币系统开发模板(现成)

鉴释人物丨专访解决方案负责人卜祥敏:直击业务痛点,赋能客户高效业务逻辑

鉴释

解决方案 业务逻辑 静态代码分析

带你上手全新版本的Webpack 5

华为云开发者联盟

JavaScript json 打包 webpack 模块

云算力挖矿分币系统软件开发内容(案例)

云算力挖矿系统开发公司(源码案例)

你了解微服务的超时传递吗?

万俊峰Kevin

微服务 go-zero 超时 Go 语言 微服务调用链

你真的会使用数据库的索引吗?

华为云开发者联盟

索引 查询 聚集索引

敏捷开发你必须知道的7件事

华为云开发者联盟

敏捷开发 软件开发 团队 Agile PM

云原生时代的强强联合:EMQ 映云科技正式加入 AWS 合作伙伴计划

EMQ映云科技

AWS mqtt emq

云挖矿分币系统软件开发资料(源码)

Redis大集群扩容性能优化实践

vivo互联网技术

数据库 redis 性能优化 slots

【LeetCode】 LRU 缓存机制Java题解

Albert

算法 LeetCode 10月月更

使用 Apache APISIX 进行集中式身份认证及进阶玩法

API7.ai 技术团队

开源 身份认证 API网关 Apache APISIX

网络协议之:加密传输中的NPN和ALPN

程序那些事

网络协议 程序那些事 ALPN NPN

云算力矿机租赁挖矿系统软件开发资料(案例)

GK架构2 模6作业

Ping

APISIX 成为 Apache 项目两周年!

API7.ai 技术团队

开源社区 API网关 Apache APISIX

爱奇艺ZoomAI获CCF科学技术奖科技进步杰出奖,技术创新焕新老片,助力经典传承

爱奇艺技术产品团队

“对比Excel”系列再添新成员,手把手教你用Python实现报表自动化!

博文视点Broadview

Source Map在前端监控中的应用和实践

爱奇艺技术产品团队

大前端

博睿数据智能监测终端全面升级,计算能力强大、用户体验真实性高

博睿数据

现成区块链挖矿系统源码开发

Android SDK设计规范与心得

轻口味

android sdk 10月月更

【架构实战营】模块九作业

Abner S.

#架构实战营

【Flutter 专题】26 易忽略的【小而巧】的技术点汇总 (四)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 10月月更

搞懂异地多活,看这篇就够了

Kaito

架构 高可用 后端 容灾 异地多活

2021年9月云主机性能评测报告

博睿数据

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