Spring HATEOAS的简单认识
HATEOAS:
超媒体作为应用程序状态引擎(HATEOAS)是REST应用程序体系结构的一个组件,它将其与其他网络应用程序体系结构区分开来。
使用HATEOAS,客户端与网络应用程序交互,其应用程序服务器通过超媒体动态提供信息。除了对超媒体的一般理解之外,REST客户端几乎不需要知道如何与应用程序或服务器交互。
优点:相比之下,CORBA中的客户端和服务器通过文档或接口描述语言(IDL)共享的固定接口进行交互。
HATEOAS约束将客户端和服务器分离的方式使服务器功能能够独立发展。
HEOAS约束是REST的“统一接口”特征的重要组成部分,正如Roy Fielding的博士论文所定义的那样。
Fielding解释说,这个和其他REST约束的一些严格性的目的是“几十年的软件设计:每个细节都旨在促进软件的寿命和独立进化。许多约束直接与短期相对立不幸的是,人们在短期设计方面相当擅长,而且在长期设计方面通常很糟糕“。
HATEOAS是 REST 架构风格中最复杂的约束,也是构建成熟 REST 服务的核心。
它的重要性在于打破了客户端和服务器之间严格的契约,使得客户端可以更加智能和自适应,
而 REST 服务本身的演化和更新也变得更加容易。
Spring HATEOAS的简单认识的更多相关文章
- 使用 Spring HATEOAS 开发 REST 服务--转
原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-SpringHATEOAS/index.html?ca=drs-&utm_source ...
- 使用 Spring HATEOAS 开发 REST 服务
使用 Spring HATEOAS 开发 REST 服务 学习博客:https://www.ibm.com/developerworks/cn/java/j-lo-SpringHATEOAS/ htt ...
- Spring Security4.X 简单实例介绍
简介 本例子采用的是SpringMVC.SpringSecurity和Spring整合的简单使用 使用gradle搭建的项目(gradle比maven更加便捷),可以自行了解 web.xml配置 &l ...
- 使用Spring缓存的简单Demo
使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...
- Spring依赖注入 --- 简单使用说明
Spring依赖注入 --- 简单使用说明 本文将对spring依赖注入的使用做简单的说明,enjoy your time! 1.使用Spring提供的依赖注入 对spring依赖注入的实现方法感兴趣 ...
- A real ROCA using Bootstrap, jQuery, Thymeleaf, Spring HATEOAS and Spring MVC
http://www.tuicool.com/articles/ENfe2u https://github.com/tobiasflohre/movie-database What is the be ...
- spring+springMVC+mybatis简单整合
spring+springMVC+mybatis简单整合, springMVC框架是spring的子项目,所以框架的整合方式为,spring+Mybatis或springMVC+mybatis. 三大 ...
- Spring Boot项目简单上手+swagger配置+项目发布(可能是史上最详细的)
Spring Boot项目简单上手+swagger配置 1.项目实践 项目结构图 项目整体分为四部分:1.source code 2.sql-mapper 3.application.properti ...
- Spring boot 注解简单备忘
Spring boot 注解简单备忘 1.定义注解 package com.space.aspect.anno;import java.lang.annotation.*; /** * 定义系统日志注 ...
随机推荐
- vim删除.swp
非正常关闭vi编辑器时会生成一个.swp文件 关于swp文件 使用vi,经常可以看到swp这个文件,那这个文件是怎么产生的呢,当你打开一个文件,vi就会生成这么一个.(filename)swp文件以备 ...
- MongoDB - 2
Aggregation Framework: $project: a document stream by renaming, adding, or removing fields #alter Da ...
- C++第二章作业
1.(1)if...else 用法 #include <iostream> #include <cstring> using namespace std; int main() ...
- java手写线程池,完善中
package com.test001.threadpool; import java.util.LinkedList; import java.util.List; import java.util ...
- 常用数据类型的方法--str、int、list、dict
一.字符串类型(str) class str(basestring): """ str(object='') -> string Return a nice str ...
- 安卓demo
https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/README-CN.md
- C#进度条简单应用
进度条表示文件复制的进度: 1.将进度条最大值设置为需要复制的文件总数 2.遍历文件时每复制一个文件之后,进度条+1 ;//文件总数 progressBar1.Value = progressBar1 ...
- opencart3修改产品页模板没有效果的原因排查
这几天在opencart 3模板时发生了一个很奇怪的事情,ytkah明明已经将product.twig模板修改了,但是前端产品页就是没有变化,后台刷新缓存了也不起左右.后面想着把模板重命名成produ ...
- Python模块安装与读取Excel
今天.想用Python读取一下Excel中的数据,从网上查找了一个样例,是要安装相关的模块: 1:到python官网下载http://pypi.python.org/pypi/xlrd模 ...
- [vue]vue基础复习项案例stepbystep
看本篇第二次复习内容即可. 还有一些 文档了这个如 https://www.cnblogs.com/iiiiiher/p/9508733.html https://www.cnblogs.com/ii ...