写点什么

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

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

关注

评论

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

2020对标阿里P8,最强学习路线:Android小白—

android 程序员 移动开发

2020年了,跨平台开发框架现在怎样了?

android 程序员 移动开发

2021金三银四Android面试心得,已拿到多个offer

android 程序员 移动开发

2021首次发车,Flutter Fair正式开源了

android 程序员 移动开发

2020我的百度面试之旅,国庆前的Offer,总是如此舒适!

android 程序员 移动开发

35岁程序员面对被优化,面对生活,房贷车贷能有多无力?

android 程序员 移动开发

2020年Android面试题汇总(中高级)(1)

android 程序员 移动开发

2020至2021年Android开发面试习题整理,持续更新中

android 程序员 移动开发

2021 年 9 月美团 Android 面试总结

android 程序员 移动开发

2021【BAJT】Android校招、社招面试题整理合集

android 程序员 移动开发

37岁Android程序员被裁员,面试大厂被拒,降薪去小公司,心更凉了

android 程序员 移动开发

2020年疫情下的Android跳槽之路 掘金技术征文

android 程序员 移动开发

2020最新BAT-Android高端技术面试145题详解

android 程序员 移动开发

解决问题:net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content)

liuzhen007

11月日更

2020年Android面试题汇总(中高级)

android 程序员 移动开发

2020新一波跳槽季过后,Android程序员精选,大厂(小米

android 程序员 移动开发

2020腾讯、百度、华为Android面试题校招汇总(已拿offer

android 程序员 移动开发

2021疫情下Android技术人的宅家学习进阶指南!花了大价钱大厂内部买来的学习资料,爱看不看!

android 程序员 移动开发

2020抖音短视频爆火!它的背后到底是什么——如何快速的开发一个完整的直播app

android 程序员 移动开发

🏆【JVM深层系列】「云原生时代的Java虚拟机」针对于GraalVM的技术知识脉络的重塑和探究

码界西柚

JVM 编译器 GraalVM 11月日更

2021最新Android架构师必备宝典《Android架构开发手册》含抖音、美团等大厂架构演进之路

android 程序员 移动开发

2020这一年的Android面经汇总(百度、腾讯、滴滴、美团

android 程序员 移动开发

2021京东 Android 岗 Java 面试真题解析

android 程序员 移动开发

20场面试斩获大厂offer,你在我这能学到什么?

android 程序员 移动开发

30K成功入职:腾讯视频面试Android经历!「含面试题

android 程序员 移动开发

2021下半年软考多媒体考试总结

Changing Lin

11月日更

2020年GitHub-上那些优秀Android开源库,这里是Top10!建议收藏!

android 程序员 移动开发

MYSQL的行锁是如何工作的

卢卡多多

11月日更

2020年中总结之----怎么挤进一线大厂?非软文!

android 程序员 移动开发

2021最新整理大厂Android面试高频知识点

android 程序员 移动开发

3-5年的Android工程师最容易遇到4个瓶颈是什么?

android 程序员 移动开发

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