Restful levels&HATEOAS详解
RESTful:

level 0:The swarmp of POX(Plain old XML)
该模型的出发点是使用HTTP作为远程交互的传输系统,但不使用Web的任何机制。基本上你在这里做的是使用HTTP作为你自己的远程交互机制的隧道机制,通常基于远程过程调用。

HTTP仅作为一个通信隧道(即HTTP只关注通信消息,而不关注客户端及服务器间的行为)
采用远程调用协议(Remote Procedure Call Protocol):即客户端想要执行某一任务,或者说向服务器请求某一服务,只需发送相关消息(执行某一句柄),而不用关心底层实现。
提供一个调用接口给客户端。
Level 1:Resources
在RMM中迈向休息荣耀的第一步是引入资源。现在,我们现在开始讨论各个资源,而不是将所有请求发送到单一服务端点。

通过URI来定位资源,实现资源独立性
采用“面向对象”的通信方式
Level 2:HTTP Verbs
我已经在0级和1级的所有交互中使用了HTTP POST动词,但有些人使用GET代替或另外使用GET。在这些级别上它没有太大区别,它们都被用作隧道机制,允许您通过HTTP隧道交互。2级远离此,使用HTTP动词尽可能接近它们在HTTP本身中的使用方式。

Level 2追加了HTTP动作来指明我们对于资源要做何种操作,如此,客户端的请求就能完整的表述为“我需要对XX(资源)做XX(行为)”,该层级是当前使用最为广泛地REST层级,通常定义如下四个HTTP动作:
GET—-》一般性获得资源,并不改变资源,所以这种操作相对安全
POST—》通常为创建资源操作
PUT—-》通常为更新资源操作
DELETE-》删除资源操作
同时,服务端不再通过错误消息(当然,某些系统也会封装错误消息,给予客户友善提示)来告诉客户端执行状态,而是通过返回HTTP状态字来告知客户端请求执行结果。
Level 3:Hypermedia Controls (超媒体控制)
最后一个级别引入了一些您经常听到的在HATEOAS(超文本作为应用程序状态引擎)的首字母缩写词中提到的内容。它解决了如何从列表中打开插槽到知道如何预约的问题。

层次的意义:
- Level 1通过使用分而治之来解决处理复杂性的问题,将大型服务端点分解为多个资源。
- Level 2引入了一组标准动词,以便我们以相同的方式处理类似的情况,消除不必要的变化。
- Level 3引入了可发现性,提供了一种使协议更加自我记录的方法。
HATEOAS
由上面可知HATEOAS位于第三层。
HATEOAS即超媒体应用程序状态的引擎,是其余应用程序体系结构的一个组成部分,它区别与其他网络应用程序体系结构。使用HATEOAS,客户端与应用服务器的网络应用程序提供通过超媒体动态信息。REST客户需求没有先验知识如何与应用程序交互或服务器超出一般的超媒体的理解。相比之下,在CORBA客户机和服务器交互通过固定接口共享文档或一个接口描述语言(IDL)。
HATEOAS为RESTful Web服务带来了相同的概念。
当请求资源的某些详细信息时,您将提供资源详细信息以及相关资源的详细信息以及您可以对资源执行的可能操作。例如,在请求有关facebook用户的信息时,REST服务可以返回以下内容
- 用户详情
- 获取最近帖子的链接
- 得到他最近评论的链接
- 检索他朋友列表的链接。
Restful levels&HATEOAS详解的更多相关文章
- Restful levels&HATEOAS
RESTful: Rest是一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等 ...
- RESTful Levels & HATEOAS
什么是RESTful REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的.翻译过来就是"表现层状态转化.” REST是一种软件架构风格.设计风格,而不是 ...
- Restful levels &HATEOAS基本介绍~
本文所涉及的内容摘自:http://www.manongjc.com/article/93934.html 什么是RESTful REST这个词,是Roy Thomas Fielding在他2000年 ...
- restful 与 webapi 详解
restful 什么是API API全称Aplication Programming Itererface即应用程序编程接口, 我们在开发应用程序时经常用到.API作为接口,用来"连接&qu ...
- 通俗易懂的RESTful API实践详解(含代码)
来源:点击进入 点击上方链接,版面更好 一.什么是RESTful REST 是面向资源的,这个概念非常重要,而资源是通过 URI 进行暴露,URI 的设计只要负责把资源通过合理方式暴露出来就可以了,对 ...
- ElasticSearch7.3学习(二十)----采用restful风格查询详解
1.Query DSL入门 1.1 DSL DSL:Domain Specified Language,特定领域的语言.es特有的搜索语言,可在请求体中携带搜索条件,功能强大. 查询全部 GET /b ...
- RESTful架构2--架构详解
转自:RESTful架构详解 1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在200 ...
- RESTful 架构详解
RESTful 架构详解 分类 编程技术 1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次 ...
- 【菜鸟】RESTful 架构详解
RESTful 架构详解 分类 编程技术 1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次 ...
随机推荐
- JAVA如何request没有参数的post提交
过去做网页的时候 post过来的值都是带参的 我就request.getParameter("")来获取 现在过来的不带参 就一串字符串 我应该怎么获取? //用获取数据流的方式, ...
- Ubuntu安装之python开发
Ubuntu安装之python开发 什么??公司要用Ubuntu(乌班图)?不会用??怎么进行python开发??? 乌班图操作系统下载地址:http://releases.ubuntu.com/ ...
- [Leetcode 39]组合数的和Combination Sum
[题目] Given a set of candidate numbers (candidates) (without duplicates) and a target number (target) ...
- Linux常见命令快捷方式
命令行编辑的辅助操作: Tab健:自动补齐 Ctrl +U :清空至首行 Ctrl +K: 清空至尾行 Ctrl +L:(或者clear) 清屏 Ctrl +C: 取消执行命令 获取帮助命令: 内 ...
- spring中ApplicationListener的用法
1.实现ApplicationListener接口,并重写onApplicationEvent方法 @Component public class RSAKeyInitListener impleme ...
- css中width:auto和width:100%的区别是什么
width的值一般是这样设置的: 1,width:50px://宽度设为50px 2,width:50%://宽度设为父类宽度的50% 3,还有一个值是auto(默认值),宽度是自动的,随着内容的增加 ...
- Oracle组成介绍
Oracle Database 11g是一些特殊文件的集合,这些文件是用数据库配置助手创建的,然后用OEM Grid Control完成相关工作.这些数据库文件是通过一组共享内存进程来进行访问的,这组 ...
- C# 温故之.NET 异步
Bitter Coffee的温故之.NET 异步 相当经典(请允许我用经典两字),读了好几遍,留存.
- java往MongDB导入大量数据
好几月没写博客了~~~ --------------------- 在公司最近在搞用java往MongDB导入数据 现在是我刚导入2000W条数据了 所以就先写上吧,废话也不多说了 MongDB 我本 ...
- webpack学习笔记 ——篇2
插件整理 extract-text-webpack-plugin 用于将css/less/sass等文件单独打包 https://webpack.docschina.org/plugins/extra ...